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 1o5ofhc7eyas0 dodana przez djmiw, 12.06.2013 17:45
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.
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.
/*
*            [WYZWANIA by CYPIS]
*	    
*       ^^^   ^^   ^^   ^^ ^^^    ^^    ^^ ^                                                        
*      ^^      ^^ ^^    ^^    ^   ^^   ^                   
*      ^^       ^^      ^^ ^^^    ^^    ^^ ^                                                                        	
*      ^^       ^^      ^^        ^^        ^                                                                         
*       ^^^     ^^      ^^        ^^    ^ ^^   
*
*	GG: 3800672                                                                                                                                               
*/
 
#if defined USING_SQL
#include <sqlx>
#else
#include <nvault>
#endif
 
#if defined COD_NOWY
native cod_get_user_xp(id);
native cod_set_user_xp(id, wartosc);
#endif
 
new const nazwy_nagrody[][] = 
{
	"Exposed %^nCall in & UAV", //0
	"Interference %^nCall in & Counter-UAV", //1
	"Air Mail %^nCall in & Care Packages", //2
	"Sentry Veteran %^nCall in & Sentry Guns",  //3
	"Air To Ground %^nCall in & Predator Missiles", //4
	"Airstrike Veteran %^nCall in & Precision Airstrikes", //5
	"Special Delivery %^n Call in & Emergency Airdrops",//6
 
	"Blackout %^nCall in & EMP", //7
	"End Game %^nCall in & Nuke", //8
 
	"Radar Inbound %^nCall in & UAV or Counter-UAV",  //9
	"Airstrike Inbound %^nCall in & Precision or Harrier Airstrike", //10
	"Airdrop Inbound %^nCall in & Care Packages, Sentry Guns or Emergency Airdrop" //11
};
 
new const za_nagrode[][3] = 
{
	{1000, 2500, 5000}, //uav
	{1000, 2500, 5000}, //cuav
	{1000, 2500, 5000}, //care packages
	{1000, 2500, 5000}, //sentry 
	{1500, 2500, 5000}, //predator 
	{1500, 3000, 6000}, //nalot
	{1500, 3000, 6000}, //emergy airdrop
 
	{2500, 5000, 10000}, //emp
	{5000, 10000, 10000}, //nuke
 
	{2500, 5000, 10000}, //uav or cuav
	{2500, 5000, 10000}, //nalot2
	{2500, 5000, 10000}  //care packages, sentry or emergy airdrop
};
 
new const rzymskie_liczby[][] = {"I", "II", "III"};	
new ile_nagrod[MAX+1][9], nazwa_gracza[MAX+1][35];
 
#if defined USING_SQL
new Handle:g_sql;
#else
new g_vault;
#endif
 
public ks_plugin_init() 
{
	register_clcmd("say /wyzwania", "MOTDwyzwania");
 
#if defined USING_SQL
	register_cvar("ks_sql_host", "localhost");
	register_cvar("ks_sql_user", "root");
	register_cvar("ks_sql_pass", "");
	register_cvar("ks_sql_db", "db");
#endif
}
 
public ks_plugin_precache()
{
	precache_sound("mw/challenge_completed.wav");
}
 
public plugin_cfg()
{
#if defined USING_SQL
	register_cvar("ks_sql_host", "localhost");
	register_cvar("ks_sql_user", "root");
	register_cvar("ks_sql_pass", "");
	register_cvar("ks_sql_db", "db");
 
	new host[64], user[64], pass[64], db[64];
	get_cvar_string("ks_sql_host", host, 63);
	get_cvar_string("ks_sql_user", user, 63);
	get_cvar_string("ks_sql_pass", pass, 63);
	get_cvar_string("ks_sql_db", db, 63);
 
	g_sql = SQL_MakeDbTuple(host, user, pass, db);
	if(g_sql == Empty_Handle){
		set_fail_state("Brak polaczenia z baza danych!");
		return;
	}
	new szTemp[1024];
	add(szTemp, 1023, "CREATE TABLE IF NOT EXISTS `cod_ks` (`name` VARCHAR(35) NOT NULL,");
	add(szTemp, 1023, "`0` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`1` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`2` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`3` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`4` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`5` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`6` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`7` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "`8` INT UNSIGNED NOT NULL DEFAULT 0, ");
	add(szTemp, 1023, "PRIMARY KEY(name));");
	SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
#else
	g_vault = nvault_open("killstreak");
#endif
}
 
public plugin_end()
{
#if defined USING_SQL
	SQL_FreeHandle(g_sql);
#else
	nvault_close(g_vault);
#endif
}
 
public MOTDwyzwania(id)
{
	#define LICZBA(%1,%2,%3,%4) (%1 >= %2? (%1 >= %3? %4: %3): %2)
	#define RZYMSKALICZ(%1,%2,%3) (%1 >= %2? (%1 >= %3? "III": "II"): "I")
	#define KOLOR(%1) ((zmienna[%1] > 0)? "#0099FF": "#CC0033")
 
	new szTemp[1500], iLen = 0, zmienna[3];
	iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, "<html><style type=^"text/css^">body{font-family:verdana,arial;background:#666666;margin:10px;}img{border:0px none;}.at{font-size:9px;color:red;}.green{font-size:11px;color:#00FF00;}.white{font-size:11px;color:#FFFFFF;}.red{color:#FF0000;}</style><font color=FFFFFF><small><b>Twój przebieg wyzwań:</b><br/><br/>");
 
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Exposed %s - %i / %i (Call UAV)<br/><br/>", 			RZYMSKALICZ(ile_nagrod[id][0],5,25), min(ile_nagrod[id][0],50), LICZBA(ile_nagrod[id][0],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Interference %s - %i / %i (Call C-UAV)<br/><br/>", 		RZYMSKALICZ(ile_nagrod[id][1],5,25), min(ile_nagrod[id][1],50), LICZBA(ile_nagrod[id][1],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Air Mail %s - %i / %i (Call Care Package)<br/><br/>", 		RZYMSKALICZ(ile_nagrod[id][2],5,25), min(ile_nagrod[id][2],50), LICZBA(ile_nagrod[id][2],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Sentry Veteran %s - %i / %i (Call Sentry Gun)<br/><br/>",	     	RZYMSKALICZ(ile_nagrod[id][3],5,25), min(ile_nagrod[id][3],50), LICZBA(ile_nagrod[id][3],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Air To Ground %s - %i / %i (Call Predator Missle)<br/><br/>",  	RZYMSKALICZ(ile_nagrod[id][4],5,25), min(ile_nagrod[id][4],50), LICZBA(ile_nagrod[id][4],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airstrike Veteran %s - %i / %i (Call Airstrike)<br/><br/>",	RZYMSKALICZ(ile_nagrod[id][5],5,25), min(ile_nagrod[id][5],50), LICZBA(ile_nagrod[id][5],5,25,50));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Special Delivery %s - %i / %i (Call Emergency Airdrops)<br/><br/>",RZYMSKALICZ(ile_nagrod[id][6],5,25), min(ile_nagrod[id][6],50), LICZBA(ile_nagrod[id][6],5,25,50));
 
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Blackout %s - %i / %i (Call EMP)<br/><br/>",			RZYMSKALICZ(ile_nagrod[id][7],2,5),  min(ile_nagrod[id][7],10), LICZBA(ile_nagrod[id][7],2,5,10));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "End Game %s - %i / %i (Call Nuke)<br/><br/><br/>", 		RZYMSKALICZ(ile_nagrod[id][8],2,5),  min(ile_nagrod[id][8],10), LICZBA(ile_nagrod[id][8],2,5,10));
 
	iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, "<b>Dalsze wyzwania dostepne po odblokowaniu:</b><br/><br/>");
 
	if(ile_nagrod[id][0] >= 50 && ile_nagrod[id][1] >= 50)
		zmienna[0] = max(ile_nagrod[id][0], ile_nagrod[id][1])-50;
 
	if(ile_nagrod[id][5] >= 50)
		zmienna[1] = ile_nagrod[id][5]-50;
 
	if(ile_nagrod[id][2] >= 50 && ile_nagrod[id][4] >= 50 && ile_nagrod[id][6] >= 50/*25*/)
	{
		new makas = max(max(ile_nagrod[id][2], ile_nagrod[id][4]), ile_nagrod[id][6]);
		zmienna[2] = makas - 50/*(makas == ile_nagrod[id][6]? 25: 50)*/;	
	}
 
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Radar Inbound %s - %i / %i (<font color=%s>UNLOCK Exposed III AND Interference III<font color=FFFFFF>)<br/><br/>", 	RZYMSKALICZ(zmienna[0],50,100), min(zmienna[0],1000), LICZBA(zmienna[0],50,100,1000), KOLOR(0));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airstrike Inbound %s - %i / %i (<font color=%s>UNLOCK Airstrike Veteran III<font color=FFFFFF>)<br/><br/>",	 	RZYMSKALICZ(zmienna[1],50,100), min(zmienna[1],1000), LICZBA(zmienna[1],50,100,1000), KOLOR(1));
	iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "Airdrop Inbound %s - %i / %i (<font color=%s>UNLOCK Air Mail III AND Air To Ground III AND Special Delivery III<font color=FFFFFF>)%s",	RZYMSKALICZ(zmienna[2],50,100), min(zmienna[2],1000), LICZBA(zmienna[2],50,100,1000), KOLOR(2), "</small><br/><br/>Wyzwania^x20^x62^x79^x20^x43^x79^x70^x69^x73^x20</html>");
	show_motd(id, szTemp);
}
 
public ks_client_putinserver(id)
{
	get_user_name(id, nazwa_gracza[id], 34);
	replace_all(nazwa_gracza[id], 34, "'", "'");
	replace_all(nazwa_gracza[id], 34, "`", "`");
 
	WczytajDaneStreak(id);
}
 
stock ks_print_info(id, nazwa[])
{
	new nagroda;
	switch(nazwa[0])
	{
		case 'U': nagroda = 0; //UAV
		case 'C': nagroda = (nazwa[1] == 'o'? 1: 2); //Counter-UAV, Care Package 
		case 'S': nagroda = 3; //Sentry Gun
		case 'P': nagroda = 4; //Predator Missle
		case 'A': nagroda = 5; //Airstrike
		case 'E': nagroda = (nazwa[1] == 'm'? 6: 7); //Emergency Airdrop, EMP
		case 'N': nagroda = 8; //Nuke
	}
 
	ile_nagrod[id][nagroda]++;
	if(nagroda >= 7 && ile_nagrod[id][nagroda] <= 10) //emp, nuke
	{
		SpawadzNagrode(id, nagroda, 0, 2, 5); 
		return;
	}
	if(nagroda < 7/*6*/ && ile_nagrod[id][nagroda] <= 50) //Sentry Gun, ect.
	{
		SpawadzNagrode(id, nagroda);
		return;
	}
	/*if(nagroda == 6 && ile_nagrod[id][nagroda] <= 25) //Emergency Airdrop
	{
		SpawadzNagrode(id, nagroda);
		return;
	}*/
	if(nagroda == 5) //Airstrike
	{
		if(ile_nagrod[id][5] >= 50 && (ile_nagrod[id][5]-50) <= 1000)
		{
			SpawadzNagrode(id, nagroda, 10);
		}	
		return;
	}
	if(nagroda == 0 || nagroda == 1) //UAV, Counter-UAV
	{
		if(ile_nagrod[id][0] >= 50 && ile_nagrod[id][1] >= 50 && (max(ile_nagrod[id][0], ile_nagrod[id][1])-50) <= 1000)
		{
			if(max(ile_nagrod[id][0], ile_nagrod[id][1]) == ile_nagrod[id][nagroda])
				SpawadzNagrode(id, nagroda, 9);
		}
		return;
	}
	if(nagroda == 2 || nagroda == 4 || nagroda == 6) //Care Package, Predator Missle, Emergency Airdrop
	{
		new maksa = max(max(ile_nagrod[id][2], ile_nagrod[id][4]), ile_nagrod[id][6]);
		if(ile_nagrod[id][2] >= 50 && ile_nagrod[id][4] >= 50 && ile_nagrod[id][6] >= 50/*25*/ && ((maksa - 50/*(maksa == ile_nagrod[id][6]? 25: 50)*/) <= 1000))
		{
			if(maksa == ile_nagrod[id][nagroda])
				SpawadzNagrode(id, nagroda, 11);
		}	
		return;
	}
}
 
SpawadzNagrode(id, nagroda, ktore=0, wspolczynnik=5, mnoznik=25)
{
	ZapiszDaneStreak(id, nagroda);
 
	new liczba;
	for(new i=0; i<3; i++)
	{
		if(!ktore)
		{
			//if(nagroda != 6)
			liczba = (i==0? wspolczynnik: (i*mnoznik));
			//else
			//	liczba = (i==0? wspolczynnik: (i==1? (mnoznik/2.5): mnoznik);
		}
		else
			liczba = (i==2? 1000: ((i+1)*50))+/**/50;
 
		if(ile_nagrod[id][nagroda] == liczba)
		{
			if(ktore)
			{
				liczba -= 50;
				nagroda = ktore;
			}
 
			new szNazwa[256], szLiczba[11];
			copy(szNazwa, 255, nazwy_nagrody[nagroda]);
 
			replace(szNazwa, 255, "%", rzymskie_liczby[i]);
			num_to_str(liczba, szLiczba, 10);
			replace(szNazwa, 255, "&", szLiczba);
 
			set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 6.0, 7.0);
			ShowSyncHudMsg(id, SyncHudObj, "%s^n+%iXP", szNazwa, za_nagrode[nagroda][i]);
 
			replace(szNazwa, 255, "^n", " (");
			client_print(0, 3, "[KS] Gracz %s dostal +%iXP za ukonczenie wyzwania %s)", nazwa_gracza[id], za_nagrode[nagroda][i], szNazwa);
			client_cmd(id, "spk mw/challenge_completed.wav");
 
 
#if defined COD_NOWY
			cod_set_user_xp(id, cod_get_user_xp(id)+za_nagrode[nagroda][i]);
#else
			new szNick[32];
			get_user_name(id, szNick, 31);
			server_cmd("cod_addexp ^"%s^" %d", szNick, za_nagrode[nagroda][i]);
#endif
			break;
		}
	}
}
 
public ZapiszDaneStreak(id, nagroda)
{
#if defined USING_SQL
	new szTemp[256];
	formatex(szTemp, 255, "UPDATE `cod_ks` SET `%i` = (`%i` + 1) WHERE `name` = '%s'", nagroda, nagroda, nazwa_gracza[id]);
	SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
#else
	new vaultkey[37],vaultdata[512];
	formatex(vaultdata, 511,"%i#%i#%i#%i#%i#%i#%i#%i#%i", ile_nagrod[id][0], ile_nagrod[id][1], ile_nagrod[id][2], ile_nagrod[id][3], ile_nagrod[id][4], ile_nagrod[id][5], ile_nagrod[id][6], ile_nagrod[id][7], ile_nagrod[id][8]);
	formatex(vaultkey, 36,"%s-ks", nazwa_gracza[id]);
	nvault_set(g_vault, vaultkey, vaultdata);
#endif
}
 
public WczytajDaneStreak(id)
{
#if defined USING_SQL
	new data[1], szTemp[512];
	data[0] = id;
	formatex(szTemp, 511, "SELECT * FROM `cod_ks` WHERE `name` = '%s'", nazwa_gracza[id]);
	SQL_ThreadQuery(g_sql, "handleSelect", szTemp, data, 1);
#else
	new vaultkey[37], vaultdata[512];
	formatex(vaultkey, 36,"%s-ks", nazwa_gracza[id]);
 
	nvault_get(g_vault, vaultkey, vaultdata, 511);
	replace_all(vaultdata, 511, "#", " ");
 
	new danegracza[9][32];
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31, danegracza[7], 31, danegracza[8], 31);
 
	ile_nagrod[id][0] = str_to_num(danegracza[0]);
	ile_nagrod[id][1] = str_to_num(danegracza[1]);
	ile_nagrod[id][2] = str_to_num(danegracza[2]);
	ile_nagrod[id][3] = str_to_num(danegracza[3]);
	ile_nagrod[id][4] = str_to_num(danegracza[4]);
	ile_nagrod[id][5] = str_to_num(danegracza[5]);
	ile_nagrod[id][6] = str_to_num(danegracza[6]);
	ile_nagrod[id][7] = str_to_num(danegracza[7]);
	ile_nagrod[id][8] = str_to_num(danegracza[8]);
#endif
}
 
#if defined USING_SQL
public handleSelect(failstate, Handle:query, error[], errnum, data[], size)
{
	if(failstate != TQUERY_SUCCESS){
		log_amx("[KS] MySQL (handleSelect) error: %s",error);
		return;
	}
	new id = data[0];
 
	if(SQL_NumRows(query))
	{
		for(new i=0; i<9; i++)
		{
			ile_nagrod[id][i] = ile_nagrod[id][i]+SQL_ReadResult(query, i+1); //wrazie czego
		}
	}
	else
	{
		new szTemp[256]
		formatex(szTemp, 255, "INSERT INTO `cod_ks` (name) VALUES ('%s');", nazwa_gracza[id]);
		SQL_ThreadQuery(g_sql, "handleInsert", szTemp);
	}
}
 
public handleInsert(failstate, Handle:query, error[], errnum, data[], size){
	if(failstate != TQUERY_SUCCESS){
		log_amx("[KS] MySQL (handleInsert) error: %s", error);
		return;
	}
}
#endif
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{ rtf1 ansi deff0{ fonttbl{ f0 fnil Tahoma;}}n viewkind4 uc1 pard lang1045 f0 fs16 n par }
*/
 

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