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])
}
|