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 3mp91xayxaw4 dodana przez freetu, 28.05.2013 16:07
Typ:



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.
/* Script generated by Pawn Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <nvault>
 
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[]);
native cod_set_perk_durability(id, set);
native cod_get_perk_durability(id);
 
#define PLUGIN	"[CoD] Magazyn na perki"
#define AUTHOR	"Goliath"
#define VERSION	"2.1"
 
#define MAX_SLOTOW 10
 
new Array:aPerki, Array:aWartosc, Array:aWytrzymalosc;
new Uzyto[33];
new cvar_ilosc_slotow,
	ilosc_slotow,
	cvar_zapis,
	zapis,
	cvar_typ_zapisu,
	typ_zapisu,
	cvar_max_wytrzymalosc,
	max_wytrzymalosc;
new vault;
 
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	aPerki = ArrayCreate();
	aWartosc = ArrayCreate();
	aWytrzymalosc = ArrayCreate();
 
	register_clcmd("say /magazyn", "Magazyn");
 
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
 
	cvar_ilosc_slotow = register_cvar("cod_magazyn_sloty", "3");
	cvar_zapis = register_cvar("cod_magazyn_zapis", "1");
	cvar_typ_zapisu = get_cvar_pointer("cod_savetype");
	cvar_max_wytrzymalosc = get_cvar_pointer("cod_maxperkdurability");
 
	vault = nvault_open("CodMagazyn");
 
	set_task(1.0, "Cvary");
}
 
public Cvary()
{
	ilosc_slotow = min(max(1, get_pcvar_num(cvar_ilosc_slotow)), MAX_SLOTOW);
	zapis = get_pcvar_num(cvar_zapis);
	typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
	max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
	for(new i=0; i<=ilosc_slotow; i++)
	{
		for(new id=0; id<33; id++)
		{
			ArrayPushCell(aPerki, 0);
			ArrayPushCell(aWartosc, -1);
			ArrayPushCell(aWytrzymalosc, 0);
		}
	}
}
 
public Magazyn(id)
{
	if(!is_user_alive(id))
		return 0;
 
	Wczytaj(id);
	new menu = menu_create("Magazyn na perki", "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
		{
			cod_get_perk_name(perk, text, 32);
			format(text, 32, "%s %i/%i", text, ArrayGetCell(aWytrzymalosc, id*ilosc_slotow+i), max_wytrzymalosc);
		}
		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 wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ilosc_slotow+item);
	new wartosc_gracza, perk_gracza = cod_get_user_perk(id, wartosc_gracza);
	new wytrzymalosc_gracza = cod_get_perk_durability(id);
	if(perk)
	{
		if(Uzyto[id] & (1<<item))
		{
			client_print(id, print_center, "Nie mozesz wyjac perku, ktory dopiero wlozyles!");
			Magazyn(id);
			return 0;
		}
		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)
		{
			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);
		}
	}
	Zapisz(id);
	Magazyn(id);
	return 0;
}
 
public Zapisz(id)
{
	if(!is_user_connected(id) || !zapis)
		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) || !zapis)
		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*MAX_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;
}
 
public NowaRunda()
{
	for(new i=0; i<33; i++)
		Uzyto[i] = 0;
}
 
public client_authorized(id)
	Uzyto[id] = 0;
 
//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: 11179
Powered By (Pav32) Pastebin © 2011