Skocz do zawartości

Zablokowane Tworzenie swoich questów.


sNaxu

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

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 przez Shadowek
Odnośnik do komentarza
Udostępnij na innych stronach

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

Wiadomość wygenerowana automatycznie

 

temat_zamkniety.png
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

  • 6 miesięcy później...

Wiadomość wygenerowana automatycznie

 

temat_zamkniety.png
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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie