←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

Wypisywanie wiadomości na HUD

  • +
  • -
soja - zdjęcie soja 26.10.2008

Cześć wszystkim. Mój pierwszy post na forum wink.gif Jako, że poprzedni artykuł o tej tematyce nie do końca wypalił, postanowiłem coś naskrobać smile.gif

Do wyświetlania wiadomości na HUDzie użytkownika służą dwie funkcje:
set_hudmessage - formatuje wysyłaną wiadomość,
show_hudmessage - wysyła wcześniej ustawioną wiadomość na HUD.
Składnia set_hudmessage:
set_hudmessage ( red=200, green=100, blue=0, Float:x=-1.0, Float:y=0.35, effects=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2, channel=4 )
Teraz po kolei:
red - wartość czerwonego koloru (0-255)
green - wartość zielonego koloru (0-255)
blue - wartość niebieskiego koloru (0-255)
x - pozycja X wiadomości. Jest to wartość Float, więc zakres podajemy od 0.1 do 1.0. Aby wycentrować użyj wartości -1
y - pozycja Y wiadomości. Wartości jak wyżej.
mapwn5.png
effects - Efekt wiadomości:0 - wiadomość pojawia się i znika. Tempo pojawiania się/znikania możemy zmieniać przez edytowanie odpowiednio: fadeintime / fadeouttime
1 - wiadomość z efektem migotania.
2 - wiadomość z efektem wypisywania tekstu litera po literze. Szybkość wypisywania pojedynczej litery możemy modyfikować, podając ją w parametrze fadeintime.
fxtime - długość wyświetlania się efektu (nie jestem do końca pewny co do tego parametru, będe wdzięczny za info)
holdtime - długość wyświetlania się wiadomości (w sekundach)
fadeintime - długość pojawiania się tekstu (im większa wartość tym wolniej tekst się pojawia)
fadeouttime - długość zanikania tekstu (jak wyżej)
channel - Kanał wiadomości. Standardowo mamy dostępne 4 kanały na jednego gracza. Jeśli wyślemy wiadomość na kanale, na którym już jest coś wypisane, wiadomość zostanie nadpisana. Aby uniknąć tych problemów, należy stosować różne kanały. Jeśli jako kanał przekażemy -1, zostanie on wybrany automatycznie.
[/list]Użycie set_hudmessage:
set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 7.0)
show_hudmessage(id, "Witaj!")
Powyższy kod ustawia czerwoną wiadomość "Witaj!" dokładnie na środku ekranu, wyświetlaną przez 7 sekund.

Formatowanie wiadomości może ułatwić Hudmessage Generator, który wchodzi w skład AMXX-Studio (W menu Generators).
Natomiast w odczytywaniu kolorów może pomóc np. ColorShemer.
W pozycjonowaniu wiadomości może również pomóc ten plugin.

Składnia set_hudmessage:
show_hudmessage ( index, message[], ... )
index - ID gracza (1-32). Jeśli zostanie ustawiony na 0, wiadomość będzie widoczna dla wszystkich graczy.
message - wiadomość wysyłana na serwer.

Użycie:

show_hudmessage(id, "Witaj!")
Wiadomość możemy również formatować:
show_hudmessage(id, "Twoje hp: %d", player_hp)
Aby opuścić linijkę należy użyć sekwencji: ^n
show_hudmessage(id, "Linia nr1!^nLinia nr2!")
* W jednej wiadomości możemy użyc maksymalnie 479 znaków.
* Zawijanie wierszy zaczyna się powyżej 69 znaków.
* Pamiętaj, by użyc set_hudmessage przed wywołaniem show_hudmessage.

---
To by było na tyle smile.gif Wiem, że to nic odkrywczego, ale mam nadzieję, że się przyda.
Tekst w całości mojego autorstwa, proszę nie kopiować smile.gif
Odpowiedz

  • +
  • -
wizu - zdjęcie wizu 26.10.2008

Bardzo ładny i przejrzysty artykuł. Na pewno się przyda.
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 26.10.2008

GJ, bardzo ładnie ;)
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 26.10.2008

I tak toturiale powinny wygladac.

Wlasnie wyslales stare 'cos' o hud do kosza.

Fani czekaja na wiecej O:)

[ Dodano: 26-10-2008, 21:10 ]

Użycie set_hudmessage: Kod:
set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 7.0)


Powyższy kod ustawia czerwoną wiadomość "Witaj!" dokładnie na środku ekranu, wyświetlaną przez 7 sekund.


Tu maly blad, to przygotowuje huda do wyslania czerwonej wiadomosci ktora sie utrzyma przez 7 sekund. W set_hudmessage nie daje sie tresci do wyslania :]
Odpowiedz

  • +
  • -
MafiaDL - zdjęcie MafiaDL 26.10.2008

omg Nice? xD wypasiony
Odpowiedz

  • +
  • -
soja - zdjęcie soja 26.10.2008

Dzięki, Miczu, brakło mi tego wiersza ^^
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 26.10.2008

Ciesze sie ze moglem pomoc :)
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 27.10.2008

Nawet wujek garnek pochwali ;-)
Odpowiedz

  • +
  • -
silversurfer - zdjęcie silversurfer 27.10.2008

Jak miczu pochwalił to jestem pełen podziwu ;)
Odpowiedz

  • +
  • -
kasza - zdjęcie kasza 14.03.2009

super ;]
Odpowiedz

  • +
  • -
bl00keRs - zdjęcie bl00keRs 12.04.2009

Bylby mi ktos w stanie pomoc ?
Chcialbym aby napis migal caly czas, raz sie pojawia i znika, pojawia i znika i tak ciagle, to sa moje ustawienia, pisze w tutku jakby na 1 nastawione, mam na 1 i to sie pojawia tylko i stoi w miejscu 10 sekund zamiast migotac :|

set_hudmessage(255, 255, 255, 0.01, 0.25, 1, 10.0, 10.0)
Odpowiedz

  • +
  • -
silversurfer - zdjęcie silversurfer 13.04.2009

set_hudmessage(255, 255, 255, 0.01, 0.25, 1, 10.0, 10.0, 0.1)
a taka konstrukcja :>
Odpowiedz

  • +
  • -
bl00keRs - zdjęcie bl00keRs 13.04.2009

Niestety, napis sie pojawia i tak trwa przez 10 sekund po czym znika.
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 15.04.2009

bl00keRs, możesz to też zrobić tak:

#include <amxmodx>

public plugin_init()
{
	register_plugin("Napis","1.0","Mis")
	set_task(10.5,"napis")
}

public napis()
{
	set_hudmessage(255, 255, 255, 0.01, 0.25, 0, 6.0, 10.0)
	show_hudmessage(0, "Tutaj Daj Treść")
}

Napis wyświetla się przez 10 sekund :P
task wykonuje zadanie co 10.5 sekundy, więc napis znika na 0.5 sekundy :P

lub też możesz powydziwiać i tak dać:

#include <amxmodx>

public plugin_init()
{
	register_plugin("Napis","1.0","Mis")
}

public napis()
{
	set_hudmessage(255, 255, 170, 0.05, 0.45, 0, 6.0, -1)
	show_hudmessage(0, "Tutaj Daj Treść")
}

ta metodą napis jest ciągle ;P
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 15.04.2009

To nie jest miejsce na wasze rozważania. Tu możecie dyskutować na temat tuturiala a nie zaczynać nowe wątki.

p.s.
Mi$^'a nie słuchaj bo błędny kod daje ^^
Odpowiedz

  • +
  • -
wH oN?! - zdjęcie wH oN?! 12.09.2009

No dobrze a jak zrobic aby napis wyswetlal sie caly czas a nie np 10 czy 20 sec a i ktore liczby odpowiadaja za kanal
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 12.09.2009

Składnia set_hudmessage:

set_hudmessage ( red=200, green=100, blue=0, Float:x=-1.0, Float:y=0.35, effects=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2, channel=4 )
Teraz po kolei:
red - wartość czerwonego koloru (0-255)
green - wartość zielonego koloru (0-255)
blue - wartość niebieskiego koloru (0-255)
x - pozycja X wiadomości. Jest to wartość Float, więc zakres podajemy od 0.1 do 1.0. Aby wycentrować użyj wartości -1
y - pozycja Y wiadomości. Wartości jak wyżej.
Obrazek
effects - Efekt wiadomości:0 - wiadomość pojawia się i znika. Tempo pojawiania się/znikania możemy zmieniać przez edytowanie odpowiednio: fadeintime / fadeouttime
1 - wiadomość z efektem migotania.
2 - wiadomość z efektem wypisywania tekstu litera po literze. Szybkość wypisywania pojedynczej litery możemy modyfikować, podając ją w parametrze fadeintime.
fxtime - długość wyświetlania się efektu (nie jestem do końca pewny co do tego parametru, będe wdzięczny za info)
holdtime - długość wyświetlania się wiadomości (w sekundach)
fadeintime - długość pojawiania się tekstu (im większa wartość tym wolniej tekst się pojawia)
fadeouttime - długość zanikania tekstu (jak wyżej)
channel - Kanał wiadomości. Standardowo mamy dostępne 4 kanały na jednego gracza. Jeśli wyślemy wiadomość na kanale, na którym już jest coś wypisane, wiadomość zostanie nadpisana. Aby uniknąć tych problemów, należy stosować różne kanały. Jeśli jako kanał przekażemy -1, zostanie on wybrany automatycznie.
[/list]

czego nie rozumiesz jak wszystko opisane ? :|
Odpowiedz

  • +
  • -
Fixxor - zdjęcie Fixxor 08.05.2010

Hehe fajny tutek i fajna rzecz :)
Wszystko wytłumaczone i opisane co jak zmienić, nawet podane przykłady :)
Odpowiedz

BraciiK - zdjęcie BraciiK 31.01.2011

wielkie dzięki za tego tuta :)
leci +
Odpowiedz

  • +
  • -
Sevox - zdjęcie Sevox 31.01.2011

Tak tylko, że jak ja mam coda no nie i po lewej menu i jak dodałem sobie napis u góry ekranu który wyświetla się cały czas, to jak paka jest podłożona to mi pisz c4: czas i ten hud miga :/ Pewnie dlatego, że za dużo hud naraz, bo aż 3.
Odpowiedz