Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

HUD w pętli i poza nią


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

#1 RasiaQ

    Wracam.

  • Power User

Reputacja: 302
Wszechpomocny

  • Postów:639
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Browar Namysłów
Offline

Napisano 19.02.2014 20:54

Witam,

stworzyłem HUD, który pokazuje info o graczu

public PokazInformacje(id)
{
    id -= ZADANIE_POKAZ_INFORMACJE;
        
    if(!is_user_connected(id))
    {
        remove_task(id+ZADANIE_POKAZ_INFORMACJE);
        return PLUGIN_CONTINUE;
    }
    
    
    set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Postac : %s]^n[Doswiadczenie : %i]^n[Poziom : %i]", g_GameClasses[g_iClass[id]][ClassName], g_iEXP[id], g_iLevel[id]);
    
    return PLUGIN_CONTINUE;
}

 

Ale później zobaczyłem coś takiego:

public Gameplay_ForceHUD()
{
    new players[32], pnum, id
    get_players(players, pnum, "a")
    
    for( new i; i<pnum; i++ )
    {
        id = players[i]
        if(g_iClass[id] == CLASS_YODA || g_iClass[id] == CLASS_YODA_PLUS
        || g_iClass[id] == CLASS_OBIWAN || g_iClass[id] == CLASS_OBIWAN_PLUS
        || g_iClass[id] == CLASS_SIDIUS || g_iClass[id] == CLASS_SIDIUS_PLUS
        || g_iClass[id] == CLASS_VADER || g_iClass[id] == CLASS_VADER_PLUS)
        {
            set_hudmessage(0, 255, 255, 0.8, 0.8, 0, 6.0, 1.0)
            ShowSyncHudMsg(id, g_SyncObj, "Moc : %i / %i", g_iForce[id], GAME_FORCE_MAX)
        }
    }
}

 

I tutaj także jest wyświetlana wiadomość w HUD, tylko już w innym publicu. Da się to jakoś połączyć, żeby nie kolidowało ze sobą na ekranie ?


  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 20.02.2014 09:30

Żeby nie kolidowało to znaczy? Napisy Ci migają? nakładają się na siebie? jeden z nich znika? Czy może chcesz ustawić je obok siebie, ale nie wiesz jak?
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#3 RasiaQ

    Wracam.

  • Autor tematu
  • Power User

Reputacja: 302
Wszechpomocny

  • Postów:639
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Browar Namysłów
Offline

Napisano 20.02.2014 11:11

Żeby nie kolidowało to znaczy? Napisy Ci migają? nakładają się na siebie? jeden z nich znika? Czy może chcesz ustawić je obok siebie, ale nie wiesz jak?

 

W takim ustawieniu oba będą na ekranie, tylko obawiam się, że ten HUD z pętlą będzie nachodził na mój HUD i chcę je ustawić tak, żeby na siebie nie nachodziły (nie nakładały się na siebie)


  • +
  • -
  • 0

#4 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 20.02.2014 11:27

Hmm jest to w praktyce awykonalne :) Jeśli chcesz je ustawić blisko siebie, możesz próbować, ale wejdzie gracz z inną rozdzielczością w CSie i mu się to rozjebie...

Możesz np podzielić, że coś ma się wyświetlać na środku ekranu, coś z lewej, coś z prawej mniej więcej wyżej od tamtego, ale żeby wypozycjonować 2 elementy blisko siebie - nie da się...

Jeśli nie zależy Ci na tym, żeby te 2 elementy były różnego koloru, możesz je walnąć jako jeden hud, nawet jeśli są w 2ch różnych pluginach, zainteresuj się forwardami i natywami. Jeśli bardzo Ci zależy na kolorach, możesz to zrobić w postaci menu, tylko trzeba w odpowiednich momentach je ukrywać i wyzwalać, tj ukrywać gdy ktoś wejdzie w jakiekolwiek inne menu, a wyzwalać, gdy nie ma żadnego na ekranie. Masz jednak wtedy ograniczone kolory.
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#5 RasiaQ

    Wracam.

  • Autor tematu
  • Power User

Reputacja: 302
Wszechpomocny

  • Postów:639
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Browar Namysłów
Offline

Napisano 20.02.2014 11:35

Na kolorach w ogóle mi nie zależy. Wystarczy, żeby po prostu działało.

 

Jeśli nie zależy Ci na tym, żeby te 2 elementy były różnego koloru, możesz je walnąć jako jeden hud, nawet jeśli są w 2ch różnych pluginach, zainteresuj się forwardami i natywami. J

 

To jest w silniku moda i właśnie dlatego nie wiem jak to połączyć ;x


  • +
  • -
  • 0

#6 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 20.02.2014 14:33

Robisz tak. W silniku moda zmieniasz to:
    ShowSyncHudMsg(id, SyncHudObj, "[Postac : %s]^n[Doswiadczenie : %i]^n[Poziom : %i]", g_GameClasses[g_iClass[id]][ClassName], g_iEXP[id], g_iLevel[id]);
na to:
 
    new hud[256]
    formatex(hud, charsmax(hud),"[Postac : %s]^n[Doswiadczenie : %i]^n[Poziom : %i]", g_GameClasses[g_iClass[id]][ClassName], g_iEXP[id], g_iLevel[id]);
    
    new iRet;
    ExecuteForward(gFW, iRet, id, PrepareArray(hud, 256, 1), 255) 
    ShowSyncHudMsg(id, SyncHudObj, hud)
Do plugin_init dodaj:
gFW = CreateMultiForward ( "add_to_hud", ET_CONTIUNUE, FP_CELL, FP_ARRAY, FP_CELL)
i zarejestruj gFW jako zmienną globalną w pluginie. W 2 pluginie robisz zamiast Twojej funkcji tak:
public add_to_hud(id, string, maxlength)
    if(g_iClass[id] == CLASS_YODA || g_iClass[id] == CLASS_YODA_PLUS
    || g_iClass[id] == CLASS_OBIWAN || g_iClass[id] == CLASS_OBIWAN_PLUS
    || g_iClass[id] == CLASS_SIDIUS || g_iClass[id] == CLASS_SIDIUS_PLUS
    || g_iClass[id] == CLASS_VADER || g_iClass[id] == CLASS_VADER_PLUS)
    {
        format(string, maxlength, "%s^nMoc : %i / %i", string, g_iForce[id], GAME_FORCE_MAX)
    }
}
Kod jest kompletnie nie testowany, powinien działać, ale czy zadziała? nie wiem, sprawdź ;)
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark




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

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