←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Dodawanie frakcji do Opisu Klas

  • +
  • -
Andrzejek - zdjęcie Andrzejek 29.12.2013

Witam pisze ten poradnik, dla osób, którym się nie chce przez chwile pomyśleć.

Dobra tak więc zaczynamy, mam nadzieje że zrobiliście to ? http://amxx.pl/topic...osoby/?p=209383 jeżeli nie to zrób to a potem przystąp do poniższego poradnika.

 

Szukamy w kodzie tego :

public OpisKlasy(id)
{
    new menu = menu_create("Wybierz klase:", "OpisKlasy_Handle");
    for(new i=1; i <= ilosc_klas; i++)
    menu_additem(menu, nazwy_klas[i]);
    menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
    menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
    menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
    menu_display(id, menu);
    
    client_cmd(id, "spk QTM_CodMod/select");
}

public OpisKlasy_Handle(id, menu, item)
{
    client_cmd(id, "spk QTM_CodMod/select");
    
    if(item++ == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    new bronie[320];
    for(new i=1, n=1; i <= 32; i++)
    {
        if((1<<i) & bronie_klasy[item])
        {
            new weaponname[22];
            get_weaponname(i, weaponname, 21);
            replace_all(weaponname, 21, "weapon_", " ");
            if(n > 1)    
            add(bronie, charsmax(bronie), ",");
            add(bronie, charsmax(bronie), weaponname);
            n++;
        }
    }
    
    new opis[416+MAX_WIELKOSC_OPISU];
    format(opis, charsmax(opis), "\yKlasa: \w%s^n\yInteligencja: \w%i^n\yZdrowie: \w%i^n\yWytrzymalosc: \w%i^n\yKondycja: \w%i^n\yBronie:\w%s^n\yDodatkowy opis: \w%s^n%s", nazwy_klas[item], inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item], bronie, opisy_klas[item], opisy_klas[item][79]);
    show_menu(id, 1023, opis);
    
    return PLUGIN_CONTINUE;
}


i podmieniamy na to :

public OpisKlasy(id)
{    
    new menu = menu_create("Wybierz klase:", "OpisKlase_Frakcje");
    for(new i=1; i <= ilosc_klas; i++)
    {
        if(!is_in_previous(frakcja_klas[i],i)){
            menu_additem(menu,frakcja_klas[i],frakcja_klas[i])
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
    menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
    menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
    menu_display(id, menu);
}

public OpisKlase_Frakcje(id, menu, item)
{
    if(item == MENU_EXIT){
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    new data[65], iName[64]
    new acces, callback
    menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
    
    new menu2 = menu_create("Wybierz klase:", "OpisKlasy_Handle");
    
    new klasa[50],szTmp[5];
    for(new i=1; i <= ilosc_klas; i++)
    {
        if(equali(data,frakcja_klas[i])){
            format(klasa, charsmax(klasa), "%s", nazwy_klas[i]);
            num_to_str(i,szTmp,charsmax(szTmp));
            menu_additem(menu2, klasa,szTmp);
        }
    }
        
    menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
    menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
    menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
    menu_display(id, menu2);
    
    client_cmd(id, "spk QTM_CodMod/select");
    
    menu_destroy(menu);
    return PLUGIN_CONTINUE;
}


public OpisKlasy_Handle(id, menu, item)
{
    client_cmd(id, "spk QTM_CodMod/select");
    
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    new data[65], iName[64]
    new acces, callback
    menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
    
    item = str_to_num(data);
    
    new bronie[320];
    for(new i=1, n=1; i <= 32; i++)
    {
        if((1<<i) & bronie_klasy[item])
        {
            new weaponname[22];
            get_weaponname(i, weaponname, 21);
            replace_all(weaponname, 21, "weapon_", " ");
            if(n > 1)    
            add(bronie, charsmax(bronie), ",");
            add(bronie, charsmax(bronie), weaponname);
            n++;
        }
    }
    
    new opis[416+MAX_WIELKOSC_OPISU];
    format(opis, charsmax(opis), "\yKlasa: \w%s^n\yInteligencja: \w%i^n\yZdrowie: \w%i^n\yWytrzymalosc: \w%i^n\yKondycja: \w%i^n\yBronie:\w%s^n\yDodatkowy opis: \w%s^n%s", nazwy_klas[item], inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item], bronie, opisy_klas[item], opisy_klas[item][79]);
    show_menu(id, 1023, opis);
    
    return PLUGIN_CONTINUE;
}

 

I powinno śmigać ^^

 

Pozdrawiam

Odpowiedz

  • +
  • -
lolek1111 - zdjęcie lolek1111 19.01.2014

mozna jakis ss ?
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 21.01.2014

A jaki tu SS? Jest to samo co w wyborze frakcji tylko że do opisu klas ^^

Odpowiedz

  • +
  • -
Dziobak? - zdjęcie Dziobak? 21.01.2014

Hehe, wreszcie ktoś udostępnił tą modyfikacje osobom którzy nie wiedzieli jak zrobić :)

 

Oczywiście plusik dla ciebie, dobra robota.

Odpowiedz

  • +
  • -
prezes. - zdjęcie prezes. 15.03.2014

Mógł by ktoś dać kod który będzie pobierać frakcje z cod_frakcje.ini  

Odpowiedz

  • +
  • -
Split - zdjęcie Split 24.03.2014

No nareszcie ktoś to napisał, sam takie coś miałem napisać ale ale nie było czasu.

Oczywiście +

Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 24.03.2014

No nareszcie ktoś to napisał, sam takie coś miałem napisać ale ale nie było czasu.

Oczywiście +

 

5 minut roboty :X

Odpowiedz

  • +
  • -
FunnyeRss - zdjęcie FunnyeRss 09.06.2014

Sry za odkop, będzie czytało z pliku cod_frakcje.ini ?

Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 13.06.2014

Sry za odkop, będzie czytało z pliku cod_frakcje.ini ?

 

Przerabiasz public WybierzKlase i gotowe, wystarczy pomyśleć ^^

Odpowiedz

  • +
  • -
FunnyeRss - zdjęcie FunnyeRss 14.06.2014

 

Sry za odkop, będzie czytało z pliku cod_frakcje.ini ?

 

Przerabiasz public WybierzKlase i gotowe, wystarczy pomyśleć ^^

 

W jaki sposób? Podaj konkretnie, bo ja jestem zielony.

Odpowiedz

  • +
  • -
Split - zdjęcie Split 29.06.2014

Ale fajne :D

Znalazłem literówkę, a oto ona: public OpisKlase_Frakcje(id, menu, item)

zamienić na public OpisKlasy_Frakcje(id, menu, item)

 

Pozdrawiam

Odpowiedz

  • +
  • -
GoldenKill - zdjęcie GoldenKill 29.06.2014

Nie ma tu żadnej literówki. Jak byś zauważył, to w spoilerze 2 jest

new menu = menu_create("Wybierz klase:", "OpisKlase_Frakcje");

a nie

new menu = menu_create("Wybierz klase:", "OpisKlasy_Handle");

Więc się wszystko zgadze  :facepalm2:

Odpowiedz

  • +
  • -
Split - zdjęcie Split 30.06.2014

ohhh, nie zauważyłem, przepraszam ;D

Odpowiedz