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

Naprawa funkcji UstawPerk oraz UstawNowaKlase

cod nowy

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

#1 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 31.07.2013 20:48

*
Popularny

Przy zwracaniu COD_STOP w funkcji cod_perk_changed silnik CodModa nie wywoływał dodatkowo cod_perk_disabled, przez co przy używaniu zwracaniu tego COD_STOP'a, gracz mógł mieć kilka perków jednocześnie (nie wiedząc o tym). Podobnie było w cod_class_changed. Dodałem też poprawkę dot. wartości perku, (zamieniłem pewne < na >) oraz poprawki kosmetyczne. Całość nie obciąża dodatkowo serwera, a pomaga mu :)

 

1. Podmień public UstawPerk na

public UstawPerk(id, perk, wartosc, pokaz_info)
{
    if(!ilosc_perkow)
        return PLUGIN_CONTINUE;
    
    static obroty[33];
    
    if(obroty[id]++ >= 5)
    {
        UstawPerk(id, 0, 0, 0);
        obroty[id] = 0;
        return PLUGIN_CONTINUE;
    }
    
    perk = (perk == -1)? random_num(1, ilosc_perkow): perk;
    wartosc = (wartosc == -1 || min_wartosci_perkow[perk] < wartosc ||  wartosc > max_wartosci_perkow[perk])? random_num(min_wartosci_perkow[perk], max_wartosci_perkow[perk]): wartosc;
    
    new ret;
    
    ExecuteForward(perk_zmieniony, ret, id, perk, wartosc);
    
    if(ret == 4)
    {
        UstawPerk(id, -1, -1, 1);
        return PLUGIN_CONTINUE;
    }

    new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_disabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, perk_gracza[id]);
    DestroyForward(forward_handle);
    
    forward_handle = CreateOneForward(pluginy_perkow[perk], "cod_perk_enabled", FP_CELL, FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, wartosc, perk);
    DestroyForward(forward_handle);
    
    if(ret == 4)
    {
        UstawPerk(id, -1, -1, 1);
        return PLUGIN_CONTINUE;
    }
    
    perk_gracza[id] = perk;    
    wartosc_perku_gracza[id] = wartosc;
    
    obroty[id] = 0;
    
    if(pokaz_info && perk_gracza[id])
        client_print(id, print_chat, "[COD:MW] Zdobyles %s", nazwy_perkow[perk_gracza[id]]);
    
    return PLUGIN_CONTINUE;
}

2. Zamień public UstawNowaKlase na

public UstawNowaKlase(id)
{
    new ret;
        
    ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }

    new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, klasa_gracza[id]);
    DestroyForward(forward_handle);
        
    forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]);
    DestroyForward(forward_handle);
    
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }
    
    klasa_gracza[id] = nowa_klasa_gracza[id];
    nowa_klasa_gracza[id] = 0;
    UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);
    
    WczytajDane(id, klasa_gracza[id]);
    return PLUGIN_CONTINUE;
}

  • +
  • -
  • 5

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 01.08.2013 07:15

ostatnio mialem jakies rlogi z UstawPerk moze pomoze xD


  • +
  • -
  • 0

#3 adif11

    Wszechpomocny

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:357
  • Imię:adrian
  • Lokalizacja:szczecin
Offline

Napisano 12.08.2013 15:30

Dziękuje lecz w jaki sposób zrobić gdy wybiorę nową klase perk się psuje? dodaje

UstawPerk(id, 0, 0, 0);

pod wczytaj klase ale są błędy

oraz na spekcie u innego gracza pokazuje wytrzymałość perku z mojej klasy np posiadam naboje ninjy 40/100 a na spekcie u innego gracza jest ulepszone m4a1 40/100


Zapraszam Serdecznie Na Cod Mod'a [401 lvl]

b_350_20_FFFFFF_FFFFFF_000000_000000.png


#4 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 12.08.2013 16:41

Dziękuje lecz w jaki sposób zrobić gdy wybiorę nową klase perk się psuje? dodaje

UstawPerk(id, 0, 0, 0);

pod wczytaj klase ale są błędy

opisz dokładnie jaki efekt chcesz uzyskać

 

 

oraz na spekcie u innego gracza pokazuje wytrzymałość perku z mojej klasy np posiadam naboje ninjy 40/100 a na spekcie u innego gracza jest ulepszone m4a1 40/100

To kwestia przypadku albo to powinien być bug wytrzymałości perku. Wątpie aby ten fix w to ingerował. On praktycznie nic większego nie robi, w sumie nie znam nikogo kto zwraca COD_STOP w cod_perk_changed (prócz Siebie ^^), a z tego wynika że nie powinien on coś zepsuć


  • +
  • -
  • 0

#5 adif11

    Wszechpomocny

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:357
  • Imię:adrian
  • Lokalizacja:szczecin
Offline

Napisano 12.08.2013 17:00

Chce aby przy wyborze nowej klasy usuwało nam perk czyli żebyśmy zostali bez perków

 

to nie jest kwestia przypadku bo jak jest stary kod nie ma tego błędu


Zapraszam Serdecznie Na Cod Mod'a [401 lvl]

b_350_20_FFFFFF_FFFFFF_000000_000000.png


#6 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 12.08.2013 18:15

Tak to powinno wygladac

public UstawNowaKlase(id)
{
    new ret;
        
    ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }

    new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, klasa_gracza[id]);
    DestroyForward(forward_handle);
        
    forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]);
    DestroyForward(forward_handle);
    
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }
    
    klasa_gracza[id] = nowa_klasa_gracza[id];
    nowa_klasa_gracza[id] = 0;
    UstawPerk(id, 0, 0, 0);
    
    WczytajDane(id, klasa_gracza[id]);
    return PLUGIN_CONTINUE;
}

  • +
  • -
  • 2

#7 adif11

    Wszechpomocny

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:357
  • Imię:adrian
  • Lokalizacja:szczecin
Offline

Napisano 12.08.2013 22:07

Dziękuje Ci bardzo


Zapraszam Serdecznie Na Cod Mod'a [401 lvl]

b_350_20_FFFFFF_FFFFFF_000000_000000.png


#8 Eryk172

    Szukam niewiadomej

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:407
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Dbn
Offline

Napisano 02.12.2016 15:49

Używając Twojej funkcji gracz może posiadać 3 perki, jeden jest widoczny a reszta ukryta. Po wyjściu z serwera nic się nie zmienia, nadal to samo.

Używając oryginalnej funkcji na serwerze sypie errorami

Ktoś rozwiązał podobny problem?


  • +
  • -
  • 0

CoD Mod - IP: 91.224.117.15:27235      
JailBreak  -   IP: 91.224.117.67:27075     
Only de_dust2 -   IP: 193.33.176.197:27111   

Więcej serwerów na: www.NaFarciePL






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