Witam
Mam problem z resetowaniem questów, gdy go zresetujesz już potem nie możesz go wziąć (Zapis Nvault na Klasę)
Oto kod na zapis i reset
public cod_class_changed(id, klasa)
{
if(klasa) zapisz_aktualny_quest(id,klasa)
wczytaj_aktualny_quest(id,cod_get_user_class(id))
}
public zapisz_questa(id,akt,quest){
new name[64],klasname[32];
get_user_name(id,name,63)
cod_get_class_name(cod_get_user_class(id), klasname, 31)
strtolower(name)
new key[100];
formatex(key,99,"questy-%s-%s-%i-%i",klasname,name,akt,quest);
nvault_set(vault_questy,key,"1");
}
public zapisz_aktualny_quest(id,klasa){
new name[64],klasname[32];
get_user_name(id,name,63)
cod_get_class_name(klasa, klasname, 31)
strtolower(name)
new key[100];
format(key,99,"questy-%s-%s",klasname,name);
new data[32]
formatex(data,charsmax(data),"#%i#%d#%d#%i",quest_gracza[id][Akt],quest_gracza[id][Quest],quest_postep[id],quest_gracza[id][Posiada]);
nvault_set(vault_questy2,key,data);
quest_gracza[id][Akt] = 0
quest_gracza[id][Quest] = 0
quest_postep[id] = 0
quest_gracza[id][Posiada] = 0
}
public wczytaj_aktualny_quest(id,klasa){
new name[64],klasname[32];
get_user_name(id,name,63)
cod_get_class_name(klasa, klasname, 31)
strtolower(name)
new key[100];
format(key,99,"questy-%s-%s",klasname,name);
new data[32];
nvault_get(vault_questy2,key,data,31);
replace_all(data,31,"#"," ");
new questt[32],ile[32],akt[10],posiada[10]
parse(data,akt,9,questt,31,ile,31,posiada,9)
quest_postep[id] = str_to_num(ile)
quest_gracza[id][Quest] = str_to_num(questt)
quest_gracza[id][Akt] = str_to_num(akt)
quest_gracza[id][Posiada] = str_to_num(posiada)
}
public SprawdzQuesta(id,akt,quest){
new name[64],klasname[32];
get_user_name(id,name,63)
cod_get_class_name(cod_get_user_class(id), klasname, 31)
strtolower(name)
new key[64];
format(key,63,"questy-%s-%s-%i-%i",klasname,name,akt,quest);
new data[64];
nvault_get(vault_questy,key,data,63);
return str_to_num(data);
}
public rq(id)
{
if(!quest_gracza[id][Posiada])
{
client_print(id,print_chat,"Nie wykonujesz aktualnie zadnego questa")
return 0;
}
new menu = menu_create("Chcesz zresetowac questa?","rq_zwrot")
menu_additem(menu,"Tak")
menu_additem(menu,"Nie")
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_display(id, menu,0);
return 0;
}
public rq_zwrot(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
if(!item)
{
client_print(id,print_chat,"Zresetowales swojego questa")
quest_gracza[id][Akt] = 0
quest_gracza[id][Quest] = 0
quest_gracza[id][Posiada] = 0
}
menu_destroy(menu)
return PLUGIN_HANDLED
}


Dodatki SourceMod




Temat jest zamknięty









