Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CoD Nowy

Frakcje Pomoc

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 Szparag

    Początkujący

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:16
  • Lokalizacja:Gubin
Offline

Napisano 15.03.2013 17:06

Mogł by mi tutaj ktos wstawic w [code=auto:0] spilery jak przerobic silnik zeby byly frakcje z pliku cod_frakcje.ini post Cypisa' bo nie mogę otworzyć tych rąbanych spjlerow :( w zadnym poscie a chce przerobic sobie silnik :(

http://amxx.pl/topic...kcji-2-sposoby/

Pozdrawiam i dziękuję
  • +
  • -
  • 0

#2 Szparag

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: -1
Nowy

  • Postów:16
  • Lokalizacja:Gubin
Offline

Napisano 15.03.2013 20:48

Czy na tym forum udzieli mi ktos jeszcze odpowiedzi ??
  • +
  • -
  • 0

#3 Vasto_Lorde

    Wszechmogący

  • Power User

Reputacja: 256
Wszechwidzący

  • Postów:633
  • GG:
  • Steam:steam
  • Imię:Maćko
  • Lokalizacja:Poznań
Offline

Napisano 15.03.2013 21:00

Sposób 1:
1.Edytujemy plik codmod.inc
W pliku codmod.inc znajdujemy linijkę 
native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci);
zamieniamy ją na
native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci,const frakcja[]);
2.Edytujemy plik QTM_CodMod.sma
W zmiennych globalnych dodajemy
#define MAX_WIELKOSC_FRAKCJA 64
new frakcja_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_FRAKCJA+1]
Szukamy funkcji ZarejestrujKlase i podmieniamy ją na to ponizej
public ZarejestrujKlase(plugin, params)
{
        if(params != 8)
        return PLUGIN_CONTINUE;

        if(++ilosc_klas > MAX_ILOSC_KLAS)
        return -1;

        pluginy_klas[ilosc_klas] = plugin;

        get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
        get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

        bronie_klasy[ilosc_klas] = get_param(3);
        zdrowie_klas[ilosc_klas] = get_param(4);
        kondycja_klas[ilosc_klas] = get_param(5);
        inteligencja_klas[ilosc_klas] = get_param(6);
        wytrzymalosc_klas[ilosc_klas] = get_param(7);
        get_string(8, frakcja_klas[ilosc_klas], MAX_WIELKOSC_FRAKCJA);

        return ilosc_klas;
}
Szukamy funkcji WybierzKlase usuwamy ją , szukamy funkcji WybierzKlase_Handle usuwamy ją zamiast nich wklejamy
Spoiler 

public bool:is_in_previous(frakcja[],from){
        for(new i = from - 1;i>=1;i--){
                if(equali(frakcja_klas[i],frakcja)){
                        return true;
                }
        }
        return false;
}

public WybierzKlase(id)
{
        new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje");
        for(new i=1; i <= ilosc_klas; i++)
        {
                if(!equal(frakcja_klas[i],"") && !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 WybierzKlase_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:", "WybierzKlase_Handle");

        new klasa[50],szTmp[5];
        for(new i=1; i <= ilosc_klas; i++)
        {
                if(equali(data,frakcja_klas[i])){
                        WczytajDane(id, i);
                        format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
                        num_to_str(i,szTmp,charsmax(szTmp));
                        menu_additem(menu2, klasa,szTmp);
                }
        }

        WczytajDane(id, klasa_gracza[id]);

        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 WybierzKlase_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);

        if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
        return PLUGIN_CONTINUE;

        nowa_klasa_gracza[id] = item;

        if(klasa_gracza[id])
        client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
        else
        {
                UstawNowaKlase(id);
                DajBronie(id);
                ZastosujAtrybuty(id);
        }

        return PLUGIN_CONTINUE;
}


dobrze teraz jak ustawiamy klasom frakcje ano szukamy w sma klas (posłuże się komandosem)
cod_register_class
u mnie wygląda to tak
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
a frakcje dodamy prosto
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc,"Amerykanie");
od teraz komandos jest w frakcji amerykanie kompilujemy i wrzucamy zmieniony plug  
napisałem że jest to czasochłonna metoda ponieważ trzeba edytować każda klase z osobną ale jak kto lubi
Sposób 2:
1.Edytujemy plik QTM_CodMod.sma
W zmiennych globalnych dodajemy
#define MAX_WIELKOSC_FRAKCJA 64
new frakcja_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_FRAKCJA+1]
Szukamy funkcji ZarejestrujKlase 
pokaże jak dodać frakcje jednej klasie z resztą postąpicie tak samo
po
wytrzymalosc_klas[ilosc_klas] = get_param(7);
dodajemy
if(equali(nazwy_klas[ilosc_klas],"Komandos")){
                frakcja_klas[ilosc_klas] = "Amerykanie";
}
czyli
Spoiler 
z innymi klasami postępujecie tak samo

Szukamy funkcji WybierzKlase usuwamy ją , szukamy funkcji WybierzKlase_Handle usuwamy ją zamiast nich wklejamy
Spoiler 

public bool:is_in_previous(frakcja[],from){
        for(new i = from - 1;i>=1;i--){
                if(equali(frakcja_klas[i],frakcja)){
                        return true;
                }
        }
        return false;
}

public WybierzKlase(id)
{
        new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje");
        for(new i=1; i <= ilosc_klas; i++)
        {
                if(!equal(frakcja_klas[i],"") && !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 WybierzKlase_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:", "WybierzKlase_Handle");

        new klasa[50],szTmp[5];
        for(new i=1; i <= ilosc_klas; i++)
        {
                if(equali(data,frakcja_klas[i])){
                        WczytajDane(id, i);
                        format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
                        num_to_str(i,szTmp,charsmax(szTmp));
                        menu_additem(menu2, klasa,szTmp);
                }
        }

        WczytajDane(id, klasa_gracza[id]);

        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 WybierzKlase_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);

        if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
        return PLUGIN_CONTINUE;

        nowa_klasa_gracza[id] = item;

        if(klasa_gracza[id])
        client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
        else
        {
                UstawNowaKlase(id);
                DajBronie(id);
                ZastosujAtrybuty(id);
        }

        return PLUGIN_CONTINUE;
}


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: cod nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych