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
 

wojtu1 - zdjęcie

wojtu1

Rejestracja: 08.05.2023
Aktualnie: Nieaktywny
Poza forum Ostatnio: 09.06.2024 17:23
-----

Moje posty

W temacie: [ROZWIĄZANE] Problem z niewidzialnością

17.05.2024 12:53

Udalo mi sie to zrobić, 

 

public client_PreThink(id)
{
    if (!ma_klase[id])
        return;

    new perk;
    new perk_name[32];
    new bool:ma_perk = false;

    perk = cod_get_user_perk(id);

    cod_get_perk_name(perk, perk_name, sizeof(perk_name));

    if (perk != 0)
    {
        ma_perk = true;
    }

    if (ma_perk && equal(perk_name, "Kamuflaz", 32))
    {
        set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 75);
    }
    else if (get_user_weapon(id) == CSW_KNIFE)
    {
        set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 210);
    }
    else
    {
        set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
    }
}

w SMA klasy w client_PreThink dodalem pobieranie ID oraz nazwy perku, troche pobawilem sie z debugowaniem i działa poprawnie. Jeszcze raz wielkie dzięki za nakierowanie, mozna zamknąć.

W temacie: [ROZWIĄZANE] Problem z niewidzialnością

17.05.2024 11:46

Pewnie cod_perk_enabled wykonuje się przed client_PreThink, albo client_PreThink wykonuje się za każdym razem (przy odrodzeniu czy coś) i nadpisuje elementy z perku. Widzę dwa rozwiązania:

  • w client_PreThink weryfikować, czy user ma perk (https://amxx.pl/doku...get-perk-name)i nie wykonywać zmiany niewidzialności jeśli ma (analogicznie do ma_klase), ale to spowoduje, że będziesz musiał do tego kodu każdy perk który zmienia niewidzialność
  • zmienić logikę w perkach z niewidzialnością na metodę z "ma_perk" tj. w cod_perk_enabled/cod_perk_disabled ustawić ma_perk na true/false, dodać własny client_PreThink (żeby ten wykonywał się po client_PreThink z pluginu klasy), sprawdzać czy "ma perk" i według tego zmieniać wartość renderingu

Kodu nie dam, bo nie umiem.

Akurat perków ktore zmieniają niewidzialność, mam tylko 3 więc nie powinien być to problem jeśli chodzi o pierwszy sposób. Próbowałem już to zrobić tym drugim sposobem, lecz nic to niestety nie pomogło, jakimś cudem wartości client_PreThink klasy zawsze mają pierwszeństwo. Dzięki za nakierowanie  :giggle:, jeśli uda mi się znaleźć rozwiązanie udostępnie kod, moze komus sie przyda.