sNaxu 25 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 Jak zrobić swojego questa by DarkGL. //questy //Autor DarkGL : ) new quest_gracza[33]; new ile_juz[33]; //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 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" }2. w plugin_init dodajemy vault_questy = nvault_open("Questy"); vault_questy2 = nvault_open("Questy2"); register_clcmd("say /questy","menu_questow") register_clcmd("say /quest","menu_questow") 3.w dowolnym miejscu w kodzie dodajemy public menu_questow(id){ if(quest_gracza[id] == -1 || quest_gracza[id] == -2){ new menu = menu_create("Menu Questow","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 amxx.pl"); 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; } 4.w funkcji DeathMsg w warunku if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid)) { dodajemy if(quest_gracza[kid] != -1){ if(player_class[vid] == questy[quest_gracza[kid]][2]){ 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]) Give_Xp(kid,questy[quest_gracza[kid]][3]); quest_gracza[kid] = -1; zapisz_aktualny_quest(kid) } else { client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]]) } } tak to ma wyglądać if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid)) { show_deadmessage(kid,vid,headshot,weaponname) create_itm(vid,0,"losowy item") award_kill(kid,vid) add_respawn_bonus(vid) add_bonus_explode(vid) add_barbarian_bonus(kid) //mana_gracza[kid]+=1 //mana_gracza[headshot]+=2 if (player_class[kid] == Barbarzynca) refill_ammo(kid) if (player_class[kid] == Griswold) refill_ammo(kid) if (player_class[kid] == Kowal) refill_ammo(kid) if (player_class[kid] == Demonolog) refill_ammo(kid) set_renderchange(kid) savexpcom(vid) if(quest_gracza[kid] != -1){ if(player_class[vid] == questy[quest_gracza[kid]][2]){ 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]) Give_Xp(kid,questy[quest_gracza[kid]][3]); quest_gracza[kid] = -1; zapisz_aktualny_quest(kid) } else { client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]]) } } } 5. quest_gracza[id] = wczytaj_aktualny_quest(id); musimy to dodać po całym switch w funkcji handle menu wyboru klas dużo diablo modów dużo menów dlatego tylko przyklad public PokazMeni(id, key) { /* Menu: * Wybierz klase: * 1:Czarodziejka * 2:Druid * 3:Paladyn * 4:Zabojczyni * 5:Nekromanta * 6:Barbarzynca * 7:Ninja * 8:Amazonka * 0:Wstecz */ new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none) g_haskit[id] = 0 c_shake[id]=0 c_damage[id]=0 c_jump[id]=0 c_mine[id]=0 c_respawn[id]=0 c_vampire[id]=0 zmiana_skinu[id]=0 switch(key) { case 0: { player_class[id] = Mag c_shake[id]=20 LoadXP(id, player_class[id]) } case 1: { player_class[id] = Mnich c_damage[id]=3 zmiana_skinu[id]=1 changeskin(id,0) LoadXP(id, player_class[id]) } case 2: { player_class[id] = Paladyn LoadXP(id, player_class[id]) } case 3: { player_class[id] = Zabojca c_jump[id]=1 c_mine[id]=2 LoadXP(id, player_class[id]) } case 4: { player_class[id] = Nekromanta g_haskit[id] = 1 c_respawn[id]=4 c_vampire[id]=random_num(1,3) LoadXP(id, player_class[id]) } case 5: { player_class[id] = Barbarzynca LoadXP(id, player_class[id]) } case 6: { player_class[id] = Ninja LoadXP(id, player_class[id]) } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 LoadXP(id, player_class[id]) } case 9: { select_class(id,lx) } } CurWeapon(id) quest_gracza[id] = wczytaj_aktualny_quest(id); give_knife(id) return PLUGIN_HANDLED } Wiem jestem cienki w pisaniu poradników : D Borsuk_Sqn , Luki!# i Klosin dodali reakcje 3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Luki!# 38 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 Dobry poradnik + GG: 49722583 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Klosin 1 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 Pewnie się przyda, dobrze opisany ładnie schludnie masz + Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
davise 55 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 Wkońcu swoją robotę, wykonujesz... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Borsuk_Sqn 5 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 :D No to już umiem :3 Prawie :D no tak na 30 % ale jeszcze z 5 razy ogarne i bedzie git xD + ____________________________________________________________ W razie potrzeby zawsze pomogę ile mogę :3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shadowek 53 Napisano 30 Listopada 2015 Udostępnij Napisano 30 Listopada 2015 (edytowane) Dobry poradnik fajnie fajnie, ale to nie jemu dziękujcie tylko osobie która to wykonała (bo on to tylko przekopiował) : DarkGl (jakby ktoś nie wiedział: Administrator sieci AmxxSupport) Edytowane 30 Listopada 2015 przez Shadowek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sNaxu 25 Napisano 30 Listopada 2015 Autor Udostępnij Napisano 30 Listopada 2015 Shadowek, Masz rację, niech nie dziękują Mi tylko Jemu, żeby nikt się nie czepiał - Ja nigdzie nie napisałem że poradnik jest mojego autorstwa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shadowek 53 Napisano 1 Grudnia 2015 Udostępnij Napisano 1 Grudnia 2015 Shadowek, Masz rację, niech nie dziękują Mi tylko Jemu, żeby nikt się nie czepiał - Ja nigdzie nie napisałem że poradnik jest mojego autorstwa. Tylko, żebyś sobie nie pomyślał, że chciałem cię obrazić nic z tych rzeczy. Ja tylko im napisałem, że to wykonał DarkGL, ponieważ niektórzy chyba nie czytają początku :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
KiKerr 216 Napisano 5 Grudnia 2015 Udostępnij Napisano 5 Grudnia 2015 Wiadomość wygenerowana automatycznie Powód: Dzięki za poradnik, zamykam Jeżeli się z tym nie zgadzasz raportuj ten post a moderator lub administrator rozpatrzy go ponownie. Z pozdrowieniami. Administracja CSowicze.pl Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość esej Napisano 21 Czerwca 2016 Udostępnij Napisano 21 Czerwca 2016 Wiadomość wygenerowana automatycznie Powód: zamek Jeżeli się z tym nie zgadzasz raportuj ten post a moderator lub administrator rozpatrzy go ponownie. Z pozdrowieniami. Administracja CSowicze.pl Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość esej Napisano 27 Czerwca 2016 Udostępnij Napisano 27 Czerwca 2016 Wiadomość automatyczna Temat został przeniesiony z "AMXX → Poradniki" do "Archiwum Forum → Tematy Archiwalne". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi