Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

[CoD Nowy] Dodawanie frakcji - dwa sposoby


Linux`
 Udostępnij

Rekomendowane odpowiedzi

W tym poradniku opiszę w jaki sposób dodać frakcję do nowego coda i to na aż dwa sposoby!

 

[Sposob 1]:

W pliku codmod.inc znajdujemy linijkę:
native cod_register_class(const String:nazwa[], const String:opis[], const String:bronie[], inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja);

 

zamieniamy ją na:
native cod_register_class(const String:nazwa[], const String:opis[], const String:bronie[], inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja, const String:frakcja[]);

 

Następnie otwieramy plik .sp naszego silnika i dodajemy nową zmienną globalną:
new String:frakcje_klas[MAX_ILOSC_KLAS+1][64];

 

Teraz w kodzie szukamy public ZarejestrujKlase(Handle:plugin, numParams) i w środku zamieniamy:
if(numParams != 8)

 

na:
if(numParams != 9)

 

oraz za:
kondycja_klas[ilosc_klas] = GetNativeCell(8);

 

dodajemy:
GetNativeString(9, frakcje_klas[ilosc_klas], sizeof(frakcje_klas[]));

 

Jeszcze musimy przerobić wybór klas, więc szukamy public Action:WybierzKlaseMenu(client) i usuwamy calą jego zawartośc a w jego miejsce dodajemy:
public Action:WybierzKlaseMenu(client)
{
new Handle:menu = CreateMenu(WybierzKlaseMenu_Handler);
SetMenuTitle(menu, "Wybierz Frakcje:");
for(new i = 1; i <= ilosc_klas; i ++)
{
if(!StrEqual(frakcje_klas[i], "") && !is_in_previous(frakcje_klas[i], i))
AddMenuItem(menu, frakcje_klas[i], frakcje_klas[i]);
}

DisplayMenu(menu, client, 250);
}
public WybierzKlaseMenu_Handler(Handle:classhandle, MenuAction:action, client, position)
{
if(action == MenuAction_Select)
{
new String:item[64];
GetMenuItem(classhandle, position, item, sizeof(item));
position ++;

new String:menu_item[128];
new String:numer_klasy[10];
new Handle:menu = CreateMenu(WybierzKlase_Handler);
SetMenuTitle(menu, "Wybierz Klase:");
for(new i = 1; i <= ilosc_klas; i ++)
{
if(StrEqual(item, frakcje_klas[i]))
{
IntToString(i, numer_klasy, sizeof(numer_klasy));
Format(menu_item, sizeof(menu_item), "%s (Lv: %i)", nazwy_klas[i], poziom_klasy_gracza[client][i]);
AddMenuItem(menu, numer_klasy, menu_item);
}
}

DisplayMenu(menu, client, 250);
}
else if(action == MenuAction_End)
CloseHandle(classhandle);
}
public bool:is_in_previous(const String:frakcja[], from)
{
    for(new i = from - 1; i >= 1; i --)
    {
        if(StrEqual(frakcje_klas[i], frakcja))
            return true;
    }

    return false;
}

 

Następnie szukamy public WybierzKlase_Handler(Handle:classhandle, MenuAction:action, client, position) i w środku zamieniamy:
position ++;

 

na:
position = StringToInt(item);

 

To będzie na tyle. A jak z dodawaniem nowych frakcji dla klas? Przy rejestracji nowej klasy przypisujemy frakcje dla klasy.

 

[Sposob 2]:

Otwieramy plik .sp naszego silnika i dodajemy nową zmienną globalną:
new String:frakcje_klas[MAX_ILOSC_KLAS+1][64];

 

Następnie szukamy public OnMapStart() i do środka dodajemy:
new String:file[256];
BuildPath(Path_SM, file, sizeof(file), "configs/frakcje.txt");
new Handle:kv = CreateKeyValues("Frakcje");
FileToKeyValues(kv, file);
for(new i = 1; i <= ilosc_klas; i ++)
{
KvGetString(kv, nazwy_klas[i], frakcje_klas[i], sizeof(frakcje_klas[]));
TrimString(frakcje_klas[i]);
}

CloseHandle(kv);

 

Teraz w kodzie szukamy public ZarejestrujKlase(Handle:plugin, numParams) i za:
kondycja_klas[ilosc_klas] = GetNativeCell(8);

 

dodajemy:
frakcje_klas[ilosc_klas] = "";

 

Jeszcze musimy przerobić wybór klas, więc szukamy public Action:WybierzKlaseMenu(client) i usuwamy calą jego zawartośc a w jego miejsce dodajemy:
public Action:WybierzKlaseMenu(client)
{
    new Handle:menu = CreateMenu(WybierzKlaseMenu_Handler);
    SetMenuTitle(menu, "Wybierz Frakcje:");
    for(new i = 1; i <= ilosc_klas; i ++)
    {
        if(!StrEqual(frakcje_klas[i], "") && !is_in_previous(frakcje_klas[i], i))
            AddMenuItem(menu, frakcje_klas[i], frakcje_klas[i]);
    }

    DisplayMenu(menu, client, 250);
}
public WybierzKlaseMenu_Handler(Handle:classhandle, MenuAction:action, client, position)
{
    if(action == MenuAction_Select)
    {
        new String:item[64];
        GetMenuItem(classhandle, position, item, sizeof(item));
        position ++;

        new String:menu_item[128];
        new String:numer_klasy[10];
        new Handle:menu = CreateMenu(WybierzKlase_Handler);
        SetMenuTitle(menu, "Wybierz Klase:");
        for(new i = 1; i <= ilosc_klas; i ++)
        {
            if(StrEqual(item, frakcje_klas[i]))
            {
                IntToString(i, numer_klasy, sizeof(numer_klasy));
                Format(menu_item, sizeof(menu_item), "%s (Lv: %i)", nazwy_klas[i], poziom_klasy_gracza[client][i]);
                AddMenuItem(menu, numer_klasy, menu_item);
            }
        }

        DisplayMenu(menu, client, 250);
    }
    else if(action == MenuAction_End)
        CloseHandle(classhandle);
}
public bool:is_in_previous(const String:frakcja[], from)
{
    for(new i = from - 1; i >= 1; i --)
    {
        if(StrEqual(frakcje_klas[i], frakcja))
            return true;
    }

    return false;
}

 

Następnie szukamy public WybierzKlase_Handler(Handle:classhandle, MenuAction:action, client, position) i w środku zamieniamy:
position ++;

 

na:
position = StringToInt(item);

 

To będzie na tyle. A jak z dodawaniem nowych frakcji dla klas? Tworzymy w configs/ plik o nazwie frakcje.txt i dodajemy nowe klasy oraz frakcje według poniższego przykładu.
"Frakcje"
{
"Snajper" "Polacy"
"Komandos" "Polacy"
"Obronca" "Rosjanie"
"Medyk" "Niemcy"
}

 

Pierw musimy wpisać nazwę klasy a następnie jej frakcje.
 
Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.
Edytowane przez Linux`

Call Of Duty Mod Nowy v1.1 CS:GO

 

https://mygo.pl/topic/4986-call-of-duty-mod-nowy-v11/

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

×
×
  • Dodaj nową pozycję...