Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka 19qh102lar8vy dodana przez corel, 04.11.2013 17:45
Typ:



tatasrfsdfsdf2323
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.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
/* Script generated by Pawn Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <nvault>
 
#define PLUGIN	"[CoD] Magazyn na perki"
#define AUTHOR	"Goliath"
#define VERSION	"2.2"
 
/*************************************
	* KONFIGURACJA PLUGINU * 
**************************************/
 
/********************************
Zmień 32 na ilość slotów na twoim serwerze
*********************************/
 
#define MAX_PLAYERS 17
 
/********************************
Jeżeli używasz pluginu na wytrzymałość perków, zmień poniższą linijkę na:
#define WYTRZYMALOSC
Jeżeli nie, zmień ją na:
//define WYTRZYMALOSC
*********************************/
 
#define WYTRZYMALOSC
 
/********************************
Jeżeli chcesz, aby perki w magazynie przechodziły na następną mapę, zmień poniższą linijkę na:
#define ZAPISUJ
Jeżeli nie, zmień ją na:
//define ZAPISUJ
*********************************/
 
#define ZAPISUJ
 
/********************************
Tutaj zmień 3 na ilość slotów, jaką chcesz mieć w magazynie.
*********************************/
 
#define ILOSC_SLOTOW 3
 
/* UWAGA! *
* Po jakiejkolwiek zmianie w konfiguracji *
* musisz ponownie skompilować plugin! *
*/
 
/*************************************
	* KONIEC KONFIGURACJI * 
**************************************/
 
native cod_get_user_perk(id, &wartosc=0);
native cod_get_perk_name(perk, Return[], len);
native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1);
native cod_get_perkid(const perk[]);
 
#if defined WYTRZYMALOSC
native cod_set_perk_durability(id, set);
native cod_get_perk_durability(id);
 
new cvar_max_wytrzymalosc,
	Array:aWytrzymalosc,
	max_wytrzymalosc;
#endif
 
new Array:aPerki, Array:aWartosc;
new Uzyto[MAX_PLAYERS+1];
 
#if defined ZAPISUJ
new cvar_typ_zapisu,
	typ_zapisu;
new vault;
#endif
 
#if ILOSC_SLOTOW <= 0
#error Podano błędną ilość slotów w magazynie!
#endif
 
#if MAX_PLAYERS <= 0 || MAX_PLAYERS > 32
#error Podano błędną ilość slotów na serwerze!
#endif
 
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	aPerki = ArrayCreate();
	aWartosc = ArrayCreate();
 
#if defined WYTRZYMALOSC
	aWytrzymalosc = ArrayCreate();
	cvar_max_wytrzymalosc = get_cvar_pointer("cod_maxperkdurability");
	max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
#endif
 
#if defined ZAPISUJ
	cvar_typ_zapisu = get_cvar_pointer("cod_savetype");
	typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
 
	vault = nvault_open("CodMagazyn");
#endif
 
	register_clcmd("say /magazyn", "Magazyn");
 
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
 
	for(new i=0; i<=ILOSC_SLOTOW; i++)
	{
		for(new id=0; id<=MAX_PLAYERS; id++)
		{
			ArrayPushCell(aPerki, 0);
			ArrayPushCell(aWartosc, -1);
#if defined WYTRZYMALOSC
			ArrayPushCell(aWytrzymalosc, 0);
#endif
		}
	}
}
 
public Magazyn(id)
{
	if(!is_user_alive(id))
		return 0;
 
#if defined ZAPISUJ
	Wczytaj(id);
#endif
	new menu = menu_create("yMagazyn na perki dby rGoliath", "Magazyn_Handler");
	new text[33], perk;
	for(new i=1; i<=ILOSC_SLOTOW; i++)
	{
		perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i)
		if(!perk)
			formatex(text, 32, "Pusty slot");
		else
		{
#if defined WYTRZYMALOSC
			cod_get_perk_name(perk, text, 32);
			format(text, 32, "%s %i/%i", text, ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i), max_wytrzymalosc);
#else
			cod_get_perk_name(perk, text, 32);
#endif
		}
		menu_additem(menu, text);
	}
	menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Wstecz");
	menu_display(id, menu);
	return 1;
}
 
public Magazyn_Handler(id, menu, item)
{
	if(item++ == MENU_EXIT)
		return 0;
 
	new perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+item), wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+item);
	new wartosc_gracza, perk_gracza = cod_get_user_perk(id, wartosc_gracza);
 
#if defined WYTRZYMALOSC
	new wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item);
	new wytrzymalosc_gracza = cod_get_perk_durability(id);
#endif
	if(perk)
	{
		if(Uzyto[id] & (1<<item))
		{
			client_print(id, print_center, "Nie mozesz wyjac perku, ktory dopiero wlozyles!");
			Magazyn(id);
			return 0;
		}
#if defined WYTRZYMALOSC
		if(perk_gracza)
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
			ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, wytrzymalosc_gracza);
			cod_set_user_perk(id, perk, wartosc, 0);
			cod_set_perk_durability(id, wytrzymalosc);
			Uzyto[id] |= (1<<item);
		}
		else
		{
			cod_set_user_perk(id, perk, wartosc, 0);
			cod_set_perk_durability(id, wytrzymalosc);
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, 0);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, 0);
			ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, 0);
		}
#else
		if(perk_gracza)
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
			cod_set_user_perk(id, perk, wartosc, 0);
			Uzyto[id] |= (1<<item);
		}
		else
		{
			cod_set_user_perk(id, perk, wartosc, 0);
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, 0);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, 0);
		}
#endif
	}
	else
	{
#if defined WYTRZYMALOSC
		if(!perk_gracza)
		{
			client_print(id, print_center, "Nie masz zadnego perku!");
			Magazyn(id);
			return 0;
		}
		else
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
			ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item, wytrzymalosc_gracza);
			cod_set_user_perk(id, 0, 0, 0);
			cod_set_perk_durability(id, 0);
			Uzyto[id] |= (1<<item);
		}
#else
		if(!perk_gracza)
		{
			client_print(id, print_center, "Nie masz zadnego perku!");
			Magazyn(id);
			return 0;
		}
		else
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+item, perk_gracza);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+item, wartosc_gracza);
			cod_set_user_perk(id, 0, 0, 0);
			Uzyto[id] |= (1<<item);
		}
#endif
	}
#if defined ZAPISUJ
	Zapisz(id);
#endif
	Magazyn(id);
	return 0;
}
 
#if defined ZAPISUJ && !defined WYTRZYMALOSC
public Zapisz(id)
{
	if(!is_user_connected(id))
		return 0;
 
	new key[40], value[513], identyfikator[33], val_len = 0;
 
	switch(typ_zapisu)
	{
		case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
	formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
	new text[33], perk, wartosc;
	for(new i=1; i<=ILOSC_SLOTOW; i++)
	{
		perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i);
		wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+i);
		if(perk)
		{
			cod_get_perk_name(perk, text, charsmax(text));
			replace_all(text, charsmax(text), " ", "_");
			val_len += formatex(value[val_len], charsmax(value)-val_len, "%s#%i#", text, wartosc);
		}
		else
			val_len += formatex(value[val_len], charsmax(value)-val_len, "Brak#-1#");
	}
	nvault_set(vault, key, value);
	return 0;
}
 
public Wczytaj(id)
{
	if(!is_user_connected(id))
		return 0;
 
	new key[40], identyfikator[33];
 
	switch(typ_zapisu)
	{
		case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
	formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
	new text[2*ILOSC_SLOTOW+2][33], value[513];
	nvault_get(vault, key, value, 512);
	explode(value, '#', text, 2*ILOSC_SLOTOW+1, 32);
	for(new i=0; i<ILOSC_SLOTOW; i++)
	{
		new perk, wartosc;
		replace_all(text[2*i], 32, "_", " ");
		perk = cod_get_perkid(text[2*i]);
		wartosc = str_to_num(text[2*i+1]);
		if(perk)
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, perk);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, wartosc);
		}
		else
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, 0);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, -1);
		}
	}
	return 0;
}
#endif
 
#if defined ZAPISUJ && defined WYTRZYMALOSC
public Zapisz(id)
{
	if(!is_user_connected(id))
		return 0;
 
	new key[40], value[513], identyfikator[33], val_len = 0;
 
	switch(typ_zapisu)
	{
		case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
	formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
	new text[33], perk, wartosc, wytrzymalosc;
	for(new i=1; i<=ILOSC_SLOTOW; i++)
	{
		perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i);
		wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+i);
		wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i);
		if(perk)
		{
			cod_get_perk_name(perk, text, charsmax(text));
			replace_all(text, charsmax(text), " ", "_");
			val_len += formatex(value[val_len], charsmax(value)-val_len, "%s#%i#%i#", text, wartosc, wytrzymalosc);
		}
		else
			val_len += formatex(value[val_len], charsmax(value)-val_len, "Brak#-1#0#");
	}
	nvault_set(vault, key, value);
	return 0;
}
 
public Wczytaj(id)
{
	if(!is_user_connected(id))
		return 0;
 
	new key[40], identyfikator[33];
 
	switch(typ_zapisu)
	{
		case 1: get_user_name(id, identyfikator, charsmax(identyfikator));
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
	formatex(key, charsmax(key), "%s-%i", identyfikator, typ_zapisu);
	new text[3*ILOSC_SLOTOW+2][33], value[513];
	nvault_get(vault, key, value, 512);
	explode(value, '#', text, 3*ILOSC_SLOTOW+1, 32);
	new perk, wartosc, wytrzymalosc;
	for(new i=0; i<ILOSC_SLOTOW; i++)
	{
		replace_all(text[3*i], 32, "_", " ");
		perk = cod_get_perkid(text[3*i]);
		wartosc = str_to_num(text[3*i+1]);
		wytrzymalosc = str_to_num(text[3*i+2]);
		if(perk)
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, perk);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, wartosc);
			ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i+1, wytrzymalosc);
		}
		else
		{
			ArraySetCell(aPerki, id*ILOSC_SLOTOW+i+1, 0);
			ArraySetCell(aWartosc, id*ILOSC_SLOTOW+i+1, -1);
			ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i+1, 0);
		}
	}
	return 0;
}
 
#endif
 
public NowaRunda()
{
	for(new i=0; i<=MAX_PLAYERS; i++)
		Uzyto[i] = 0;
}
 
public client_authorized(id)
{
	Uzyto[id] = 0;
	for(new i=1; i<=ILOSC_SLOTOW; i++)
	{
		ArraySetCell(aPerki, id*ILOSC_SLOTOW+i, 0);
		ArraySetCell(aWartosc, id*ILOSC_SLOTOW+1, -1);
#if defined WYTRZYMALOSC
		ArraySetCell(aWytrzymalosc, id*ILOSC_SLOTOW+1, 0);
#endif
	}
}
 
//Stock by DarkGL
stock explode(const string[],const character,output[][],const maxs,const maxlen){
	new iDo = 0;
	new len = strlen(string);
	new oLen = 0;
	do
	{
		oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character))
	}
	while(oLen < len && iDo < maxs)
}

Dodanych wklejek: 4031
Powered By (Pav32) Pastebin © 2011