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 131340087912263 dodana przez Drewno., 15.08.2011 10:34
Typ:


Questy
131340087912263
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.
#include <diablomod>
#include <amxmodx>
#include <amxmisc>
#include <nvault>
 
new quest_gracza[33];
new ile_juz[33];
new forum
//przedzial , ile ,kogo , nagroda expa, vip 1 tak 0 nie
new questy[][]={
	{1,2,Ninja,500,0},
	{1,3,Mag,1200,1},
	{1,6,Zabojca,2000,0},
	{2,6,Hunter,5000,0},
	{2,15,Barbarzynca,15000,1},
	{2,20,Paladyn,20000,1},
	{3,65,Barbarzynca,150000,1},
	{3,120,Paladyn,200000,1}
}
new player_class[33]
new player_lvl[33]
new vault_questy;
new vault_questy2;
 
//od , do , hp
new prze[][]={
	{1,50,20},
	{51,80,40},
	{81,140,60}
}
 
new prze_wybrany[33]
 
new questy_info[][]={
	"Zabij 2 Ninje (Nagroda 500 doswiadczenia)",
	"Zabij 3 Magow (Nagroda 1200 doswiadczenia)",
	"Zabij 6 Zabojcow (Nagroda 2000 doswiadczenia)",
	"Zabij 6 Lowcow (Nagroda 5000 doswiadczenia)",
	"Zabij 15 Barbarzyncow (Nagroda 15000 doswiadczenia)",
	"Zabij 20 Paladynow (Nagroda 20000 doswiadczenia)",
	"Zabij 65 Barbarzyncow (Nagroda 150000 doswiadczenia)",
	"Zabij 120 Paladynow (Nagroda 200000 doswiadczenia)"
}
 
new questy_zabil[][]={
	"Ninjow",
	"Magow",
	"Zabojcow",
	"Lowcow",
	"Barbarzyncow",
	"Paladynow",
	"Barbarzyncow",
	"Paladynow"
}
 
public plugin_init()
{
 
	vault_questy = nvault_open("Questy");
	vault_questy2 = nvault_open("Questy2");
	register_event("DeathMsg","DeathMsg","ade") 
	register_clcmd("say /questy","menu_questow")
	register_clcmd("say /quest","menu_questow")
	register_cvar("questy_forum","forum.pl")
	}
 
public menu_questow(id){
 
	if(quest_gracza[id] == -1 || quest_gracza[id] == -2){
		player_class[id]=db_get_user_class(id)
		player_lvl[id]=db_get_user_level(id)
		new menu = menu_create("Menu Zadan","menu_questow_handle")
		new formats[128]
		for(new i = 0;i<sizeof prze;i++){
			formatex(formats,127,"Questy od %d do %d poziomu",prze[i][0],prze[i][1]);
			menu_additem(menu,formats)
		}
		menu_display(id,menu,0)
	}
	else
	{
		client_print(id,print_chat,"Wykonaj najpierw poprzednie zadanie")
	}
}
 
public menu_questow_handle(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	if(player_lvl[id] < prze[item][0]){
		client_print(id,print_chat,"Masz za maly level!");
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	new formats[128]
	formatex(formats,127,"Questy od %d do %d poziomu",prze[item][0],prze[item][1]);
	new menu2 = menu_create(formats,"menu_questow_handle2")
	for(new i = 0;i<sizeof(questy);i++){
		if(questy[i][0] == item+1){
			menu_additem(menu2,questy_info[i]);
		}
	}
	menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
	prze_wybrany[id] = item+1;
	menu_display(id,menu2)
	return PLUGIN_CONTINUE;
}
 
public zapisz_questa(id,quest){
	new name[64];
	get_user_name(id,name,63)
	strtolower(name)
	new key[64];
	format(key,63,"questy-%i-%s-%i",player_class[id],name,quest);
	nvault_set(vault_questy,key,"1");
}
 
public zapisz_aktualny_quest(id){
	new name[64];
	get_user_name(id,name,63)
	strtolower(name)
	new key[256];
	format(key,255,"questy-%d-%s",player_class[id],name);
	new data[32]
	formatex(data,charsmax(data),"#%d#%d",quest_gracza[id]+1,ile_juz[id]);
	nvault_set(vault_questy2,key,data);
}
 
public wczytaj_aktualny_quest(id){
	new name[64];
	get_user_name(id,name,63)
	strtolower(name)
	new key[256];
	format(key,255,"questy-%d-%s",player_class[id],name);
	new data[32];
	nvault_get(vault_questy2,key,data,31);
	replace_all(data,31,"#"," ");
	new questt[32],ile[32]
	parse(data,questt,31,ile,31)
	ile_juz[id] = str_to_num(ile)
	return str_to_num(questt)-1
}
 
public wczytaj_questa(id,quest){
	new name[64];
	get_user_name(id,name,63)
	strtolower(name)
	new key[64];
	format(key,63,"questy-%i-%s-%i",player_class[id],name,quest);
	new data[64];
	nvault_get(vault_questy,key,data,63);
	return str_to_num(data);
}
 
public menu_questow_handle2(id,menu,item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	new ile2 = 0;
	for(new i = 0;i<sizeof(questy);i++){
		if(questy[i][0] != prze_wybrany[id]){
			continue;
		}
		if(ile2 == item){
			item = i;
			break;
		}
		ile2++;
	}
	if(questy[item][4] && !(get_user_flags(id) & ADMIN_LEVEL_H)){
		client_print(id,print_chat,"Ten quest jest tylko dla vipow! Aby kupic vipa wejdz na forum %s",forum);
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	if(wczytaj_questa(id,item)){
		client_print(id,print_chat,"Wykonales juz to zadanie!");
		menu_questow(id)
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	quest_gracza[id] = item;
	ile_juz[id] = 0
	zapisz_aktualny_quest(id)
	client_print(id,print_chat,"Wybrales zadanie: %s powodzenia !",questy_info[item]);
	quest_gracza[id] = wczytaj_aktualny_quest(id);
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}
 
public DeathMsg(id)
{
	new weaponname[20]
	new kid = read_data(1)
	new vid = read_data(2)
	//new headshot = read_data(3)
	read_data(4,weaponname,31)
	if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
	{
 
 
		if(quest_gracza[kid] != -1)
		{
			if(player_class[vid] == questy[quest_gracza[kid]][2])
			{
				client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]])
				ile_juz[kid]++;
				zapisz_aktualny_quest(kid)
			}
			if(ile_juz[kid] == questy[quest_gracza[kid]][1]){
				client_print(kid,print_chat,"Wykonales zadanie %s gratulacje otrzymujesz %i expa!",questy_info[quest_gracza[kid]],questy[quest_gracza[kid]][3])
				zapisz_questa(kid,quest_gracza[kid])
				db_add_user_xp(kid,questy[quest_gracza[kid]][3])
				//db_set_user_exp(kid,db_get_user_exp+questy[quest_gracza[kid]][3]);
				quest_gracza[kid] = -1;
				zapisz_aktualny_quest(kid)
			}
		}
	}
 
}
public client_connect(id)
{
player_class[id] = db_get_user_class(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
} 
public client_disconnect(id)
{
zapisz_aktualny_quest(id)
zapisz_questa(id,quest_gracza[id])
}