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

Pytanie dotyczące frkacji

cod nowy

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

#1 1stADXionC

    Wszechobecny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 17.03.2017 21:55

Witam.

Czy jest możliwość zrobić frakcje x2, tzn:

Gdy gracz wpisze /klasa otwiera się menu:

 

Frkacje1:

 

1. NazwaFrakcji

2. NazwaFrakcji

 

Po wybraniu opcji, kolejne menu:

 

Frakcje2:

 

1. NazwaFrakcji

2. NazwaFrakcji

 

Po wybraniu opcji, wyświetla się lista klas.


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#2 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 18.03.2017 02:20

Tak, istnieje taka możliwość.


  • +
  • -
  • 1

b35020692_qesnxqa.png


#3 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 18.03.2017 18:17

Tak, istnieje taka możliwość.

 

A mógłbyś mnie nakierować jak to zrobić? 


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#4 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 18.03.2017 18:48

Nie mogłem edytować.


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#5 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 18.03.2017 18:50

Nie mogłem edytować.

#define MAX_WIELKOSC_FRAKCJA 64
new frakcja_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_FRAKCJA+1];
new nazwa_klasy[MAX_ILOSC_KLAS+1][64];
new nazwa_frakcji[MAX_ILOSC_KLAS+1][64];
new klasid;
public loadfile()
{
new file[256];
get_configsdir(file,charsmax(file));
formatex(file, charsmax(file), "%s/cod_frakcje.ini", file);

if(!file_exists(file))
return;

new row[128], trash, size=file_size(file,1);
for(new i=0;i<size;i++)
{
read_file(file, i, row, charsmax(row), trash);

if((contain(row,";")!=0) && strlen(row) && klasid<MAX_ILOSC_KLAS+1)
{
replace(row, charsmax(row), "[klasa]", "");
split(row, nazwa_klasy[klasid], charsmax(nazwa_klasy[]), nazwa_frakcji[klasid], charsmax(nazwa_frakcji[]), "[frakcja]");
klasid++;
}
} 
}

Tak wyglądają moje frakcje

public ZarejestrujKlase(plugin, params)
{
    if(params != 7)
        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);
    for(new i=0;i<klasid;i++){
        if(equali(nazwy_klas[ilosc_klas],nazwa_klasy[i])){
            frakcja_klas[ilosc_klas] = nazwa_frakcji[i];
        }
    }
    return ilosc_klas;
}
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;
}

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;
}

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#6 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 19.03.2017 12:06

Większość zmian wygląda identycznie jak przy wprowadzaniu zwykłych frakcji. Tworzysz te same zmienne, dodajesz je do zarejestrowania oraz przypisania poszczególnym klasą. Jedynie różnicą będzie edycja wyboru klas. Gdy znajdę chwilę postaram się coś napisać.


  • +
  • -
  • 1

b35020692_qesnxqa.png


#7 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 19.03.2017 16:33

Większość zmian wygląda identycznie jak przy wprowadzaniu zwykłych frakcji. Tworzysz te same zmienne, dodajesz je do zarejestrowania oraz przypisania poszczególnym klasą. Jedynie różnicą będzie edycja wyboru klas. Gdy znajdę chwilę postaram się coś napisać.

 

czekam z niecierpliwością :)

 

Mam kod, gdzie frakcję są ładnie wyświetlane lecz nie wyświetla klasy, a o to kod:

 

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 bool:is_in_previous2(frakcja2[], from)
{
for(new i = from - 1;i>=1;i--)
{
if(equali(frakcja_klas_nr2[i],frakcja2))
{
return true;
}
}
return false;
}


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


menu_destroy(menu);
return PLUGIN_CONTINUE;
}


public WybierzKlase_Handle(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) 


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;
}

 

A dokładnie tylko to menu się nie wyświetla:

 

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


menu_destroy(menu);
return PLUGIN_CONTINUE;
}

 


Użytkownik 1stADXionC edytował ten post 19.03.2017 16:53

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 






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