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

Jak zrobić HUD


Najlepsza odpowiedź Kot-CSHH, 31.07.2013 07:36

Kot masz tu wszystko dodane masz:

Nie dodam amxx problem mam:/

Sam dałem radę zrobić. Dzięki wszystkim za pomoc, oczywiście + dla każdego :D

Przejdź do postu


  • Zamknięty Temat jest zamknięty
39 odpowiedzi w tym temacie

#1 Kot-CSHH

    Wszechwidzący

  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 29.07.2013 10:26

Może mi ktoś wytłumaczyć jak zrobić HUD, z różnymi statystykami(forum, hp, vip etc.) tylko nie chciałbym gotowca, a kod(najlepiej z opisami).


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#2 Merciless

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 12:28

W amxx-studio masz hud generator. Później do opisu dodajesz np "mam %d hp", zmienna od hp np. get_user_health(id)

set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(id, "asdfasdfasdf %d", get_user_health(id))

Może coś takiego xD


  • +
  • -
  • 1

#3 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 29.07.2013 12:52

W amxx-studio masz hud generator. Później do opisu dodajesz np "mam %d hp", zmienna od hp np. get_user_health(id)

set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(id, "asdfasdfasdf %d", get_user_health(id))

Może coś takiego xD

 

O tym już wcześniej wiedziałem, ale ja chcę wiedzieć, jak to połączyć z tym, ze gdy gracz wejdzie na serwer to od razu będą mu się wyświetlać te informacje


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#4 Merciless

    Życzliwy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:31
  • Lokalizacja:Baugladełsz
Offline

Napisano 29.07.2013 14:39

Od razu jak wejdzie i dojdzie do gry, czy nawet jak będzie dead ( na spectatorze )?


  • +
  • -
  • 1

#5 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 29.07.2013 20:38

Dobra, na razie wykombinowałem coś takiego:

 #include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("say /hud","Hud")
}

public Hud(id)
{
	set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 12.0) 
	show_hudmessage(id, sync, "[Forum: CS-HH.PL]^n[HP: %d]^n[VIP: %d]^n", get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
}

ale chciałbym jeszcze dodać odświeżanie, no i żeby HUD działał od razu, a nie poprzez komendę.


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#6 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 29.07.2013 21:01

Był błąd czy dwa, więc poprawiłem. Nie sprawdzałem czy działa.

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	//rejestrujesz poczatek rundy i mowisz jaka funkcja ma byc wtedy wykonana
	register_logevent("nowa_runda", 2, "0=World triggered", "1=Round_Start")
}

public nowa_runda()
{
	//tworzysz petle, aby funkcja byla wykonana dla kazdego z graczy na serwerze
	for(new i=1; i<=get_maxplayers(); i++)
	{
		if(is_user_connected(i) && is_user_alive(i))
		{
			Hud(i);
		}
	}
}

public Hud(id)
{
	//sprawdzasz czy gracz jest zywy, aby nie wyswietlac huda martwym osobom
	if(is_user_alive(id))
	{
		set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0) 
		show_hudmessage(id, "[Forum: CS-HH.PL]^n[HP: %d]^n[VIP: %d]^n", get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
		
		//tworzysz taska, aby hud sie odswiezal (pojawial zaraz po zniknieciu poprzedniego)
		set_task(1.0, "Hud");
	}
}

  • +
  • -
  • 2

#7 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 29.07.2013 21:24

[VIP: %d]

na

VIP: %s]

  • +
  • -
  • 1

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#8 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 29.07.2013 21:29

Chcesz człowiekowi pomóc, robisz to za darmo i za nie zauważenie JEDNEJ źle napisanej literki dostajesz minusa. To forum się kończy.


  • +
  • -
  • 3

#9 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 29.07.2013 21:32

 

Był błąd czy dwa, więc poprawiłem. Nie sprawdzałem czy działa.

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	//rejestrujesz poczatek rundy i mowisz jaka funkcja ma byc wtedy wykonana
	register_logevent("nowa_runda", 2, "0=World triggered", "1=Round_Start")
}

public nowa_runda()
{
	//tworzysz petle, aby funkcja byla wykonana dla kazdego z graczy na serwerze
	for(new i=1; i<=get_maxplayers(); i++)
	{
		if(is_user_connected(i) && is_user_alive(i))
		{
			Hud(i);
		}
	}
}

public Hud(id)
{
	//sprawdzasz czy gracz jest zywy, aby nie wyswietlac huda martwym osobom
	if(is_user_alive(id))
	{
		set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0) 
		show_hudmessage(id, "[Forum: CS-HH.PL]^n[HP: %d]^n[VIP: %d]^n", get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
		
		//tworzysz taska, aby hud sie odswiezal (pojawial zaraz po zniknieciu poprzedniego)
		set_task(1.0, "Hud");
	}
}

 

Hud się nie wyświetla gdy gracz jest żywy :|

 

 

[VIP: %d]

na

VIP: %s]

 

Napis VIP robił kolega, a że działało, to nie sprawdzałem xD


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#10 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 29.07.2013 23:20

[VIP: %d]

na

VIP: %s]

 

Srr, że double post, ale może wytłumaczysz, jak mam robić tego HUD'a. Poza tematem, to chciałbym wiedzieć, czemu dostałem od ciebie -(nie żeby mi zależało czy coś, ale tak z ciekawości, pewnie dla tego, że dałem + dla Norbiego, a + dałem, ponieważ wytłumaczył mi jak mogę dodać task'a, bo wcześniej nie wiedziałem...).


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#11 Scorpion Flail

    Wszechobecny

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 29.07.2013 23:46

Do tworzenia HUDA wykorzystaj synchronizację [jeśli masz więcej wiadomośći HUD na serwerze]:

 

http://amxx.pl/dokum...reateHudSyncObj

 

Przykład:

 

zmienna globalna:

new info;

w plugin_init:

info = CreateHudSyncObj();

I w publicu:

set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(0, info, "[Forum: CS-HH.PL]^n[HP: %d]^n[VIP: %d]^n", get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");

Jeśli chcesz wyświetlać wiadomość wszystkim to chyba lepszym rozwiązaniem będzie 0 a nie id, bo wydaje mi się, że wiadomość będzie wyświetlana X razy dla każdego gracza osobno zamiast raz dla wszystkich. [tego nie jestem pewien]

 

Jeśli wiadomość ma się wyświetlać od razu po uruchomieniu pluginu to:

 

w plugin_init:

set_task(0.5, "Hud")

0.5 - czas po jakim wyświetli się hud po załadowaniu pluga

 

i do publica:

set_task(0.1, "Hud")

czyli odświeżanie HUD


Użytkownik Scorpion Flail edytował ten post 29.07.2013 23:48

  • +
  • -
  • 1

#12 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 30.07.2013 00:21

Jeśli chcesz wyświetlać wiadomość wszystkim to chyba lepszym rozwiązaniem będzie 0 a nie id, bo wydaje mi się, że wiadomość będzie wyświetlana X razy dla każdego gracza osobno zamiast raz dla wszystkich. [tego nie jestem pewien]


Mylisz się,

 
A czy gracz o id 0 - to nie jest czasem serwer
Gracz wbijący na serwer dostaje Id (od 1 do 32 - Dlatego for zaczyna się od 1 i musi być mniejszy od 33) Wpisz status i pierwsza liczba to ID. Brak Zera - zero to nie gracz.
Od siebie dodam żeby było jasne, "0" to serwer.


Co do samego tematu zastosowałbym zamiast HudSyncObj Director Hud Message ale przykład dam rano bo teraz nie mam dostępu do kompilatora ani edytora żeby sklejać plugin

Użytkownik playaz44 edytował ten post 30.07.2013 00:28

  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#13 Scorpion Flail

    Wszechobecny

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 30.07.2013 00:28

Hmm, sugerowałem się ColorChatem, w którym 0 = wiadomość dla wszystkich

 

Mój błąd polega na tym, że on pobiera informacje danego usera, tak? Gdyby wyświetlał zwykłą wiadomość, bez pobierania nicku gracza itd, to 0 byłoby poprawne?


  • +
  • -
  • 1

#14 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 30.07.2013 00:30

Mi chodzi o to, żeby wyświetlało dla każdego osobną wiadomość, chciałem dodać również nick, ale po użyciu get_user_name, nic się nie pojawiało, nie wiem w czym tkwi problem


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#15 Scorpion Flail

    Wszechobecny

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 30.07.2013 00:34

Wszystko co napisałem było poprawne, tylko zamiast 0 użyj id.

A jeśli chodzi o get_user name to powinno być tak:

 

[Nick: %s], get_user_name(id)


  • +
  • -
  • 1

#16 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 30.07.2013 00:45

Wszystko co napisałem było poprawne, tylko zamiast 0 użyj id.

A jeśli chodzi o get_user name to powinno być tak:

 

[Nick: %s], get_user_name(id)

 

Miałem takie coś 

set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(0, info, "[Forum: CS-HH.PL]^n[Nick: %s]^n[HP: %d]^n[VIP: %d]^n", get_user_name(id), get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");

i pokazywało tak:

[Forum: CS-HH.PL]

[Nick: ]

[HP: 100]

[VIP: Tak]


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#17 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 30.07.2013 00:56

Hmm, sugerowałem się ColorChatem, w którym 0 = wiadomość dla wszystkich
 
Mój błąd polega na tym, że on pobiera informacje danego usera, tak? Gdyby wyświetlał zwykłą wiadomość, bez pobierania nicku gracza itd, to 0 byłoby poprawne?


Tak, "0" wyświetli wiadomość dla wszystkich i jest tak jak piszesz, przykładowo w codmodzie są "dwa hudy", jeden z "id" do wyświetlania na przykład aktualnego hp graczowi który żyje i gra, a drugi dla obserwatora też "id" żeby wyświetlało hp aktualnie oglądanego gracza.

Ale można też zrobić żeby wyświetliło hp danego gracza "id" wszystkim na serwerze za pomocą "0" ale to mija się z celem tematu (taki właśnie kod wyżej podałeś)
  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#18 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 30.07.2013 01:01

Wszystko co napisałem było poprawne, tylko zamiast 0 użyj id.
A jeśli chodzi o get_user name to powinno być tak:
 
[Nick: %s], get_user_name(id)

 
Miałem takie coś 
set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(0, info, "[Forum: CS-HH.PL]^n[Nick: %s]^n[HP: %d]^n[VIP: %d]^n", get_user_name(id), get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
i pokazywało tak:
[Forum: CS-HH.PL]
[Nick: ]
[HP: 100]
[VIP: Tak]



Zamiast tego
set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(0, info, "[Forum: CS-HH.PL]^n[Nick: %s]^n[HP: %d]^n[VIP: %d]^n", get_user_name(id), get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
Zrób tak:
new nick[33];
get_user_name(id, nick, 32);

set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(id, info, "[Forum: CS-HH.PL]^n[Nick: %s]^n[HP: %d]^n[VIP: %d]^n", nick, get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");

Użytkownik playaz44 edytował ten post 30.07.2013 01:01

  • +
  • -
  • 0
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#19 Kot-CSHH

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 51
Pomocny

  • Postów:272
  • Imię:Patryk
  • Lokalizacja:Żory
Offline

Napisano 30.07.2013 01:17

Nadal HUD się nie pokazuje po respawnie, oraz zamiast Tak lub Nie przy VIP pisze 84


  • +
  • -
  • 0

Zapraszam na najlepszy Surf XP Mod w sieci: 31.186.83.188:27069

b_350_20_692108_381007_FFFFFF_000000.png


#20 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 30.07.2013 01:51

zamiast Tak lub Nie przy VIP pisze 84


Ponieważ nikt nie zauważył, że zamiast "%s" do wyświetlania liter było "%d" do wyświetlania liczb
 

Nadal HUD się nie pokazuje po respawnie


Użyłem do tego modułu "hamsandwich" i już nie powinno być problemu
 
#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new info;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	//rejestrujesz respawn gracza i mowisz jaka funkcja ma byc wtedy wykonana
	RegisterHam(Ham_Spawn, "player", "nowa_runda", 1);

        info = CreateHudSyncObj();
}

public nowa_runda(id)
{
        if(is_user_connected(id) || is_user_alive(id))
        Hud(id);
        return PLUGIN_CONTINUE;
}

public Hud(id)
{
	//sprawdzasz czy gracz jest zywy, aby nie wyswietlac huda martwym osobom
	if(is_user_alive(id))
	{
new nick[33];
get_user_name(id, nick, 32);

set_hudmessage(0, 160, 0, 0.75, 0.25, 0, 6.0, 1.0)
ShowSyncHudMsg(id, info, "[Forum: CS-HH.PL]^n[Nick: %s]^n[HP: %d]^n[VIP: %s]^n", nick, get_user_health(id), get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie");
	}
}

Użytkownik playaz44 edytował ten post 30.07.2013 01:54

  • +
  • -
  • 0
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.




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

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