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

[ROZWIĄZANE] zmienna w hudziedodanie flag


Najlepsza odpowiedź MrZohan, 07.01.2022 19:03

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
                else
                flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Spróbuj tak.

 

Zamiast 

else if(get_user_flags(target) && ADMIN_LEVEL_G)

to:

else if(get_user_flags(target) & ADMIN_LEVEL_G)

 

Ok zrobione.

 

Zamiast:

else if(get_user_flags(target) & ADMIN_LEVEL_G)

To dałem id, czyli:

if(get_user_flags(id) & ADMIN_LEVEL_G)

Całość działająca wygląda następująco:

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	{
		if(get_user_flags(id) & ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(id) & ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(id) & ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(id) & ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(id) & ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(id) & ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga)
		}
	}
}

+ gdyby ktoś chciał tego użyć w swoim silniku zombie_plague to w: // Player vars na końcu, czyli na dole dodajemy:

new flaga[33] // Informacja w HUD ile graczowi (na danej usludze) zostana zapisane ammo paki.

Problem rozwiązany. Dziękuje pięknie za pomoc. 

Przejdź do postu


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

#1 MrZohan

    Zaawansowany

  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 00:11

Witam serdecznie  :)

chciałbym się dowiedzieć czy można w tym:

get_user_flags(id) & ADMIN_LEVEL_H ? "800" : "500"

dodać jakąś zmienną, żeby finalnie czytało to oddzielnie.

Aktualnie zrobiłem to tak:

	// Show health, class and ammo packs
		set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
		ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
		get_user_flags(id) & ADMIN_LEVEL_H ? "800/900/1000/1200/1400/1600" : "500")

w pluginie od zapisu ammo paków mam tak:

static const VIP_FLAG = ADMIN_LEVEL_H; // Zwiększony limit AP dla klasy Tesla Zombi - Zapis flaga "t"
static const SVIP_FLAG = ADMIN_LEVEL_E; // Zwiększony limit AP dla klasy Obcy Zombi - Zapis flaga "q"
static const PVIP_FLAG = ADMIN_LEVEL_B; // Zwiększony limit AP dla klasy Mumia Zombi - Zapis flaga "n"
static const PREMIUM_FLAG = ADMIN_LEVEL_A; // Zwiększony limit AP dla klasy Wilk Zombi - Zapis flaga "m"
static const EXTRAPREMIUM_FLAG = ADMIN_LEVEL_D; // Zwiększony limit AP dla klasy Haker Zombi - Zapis flaga "p"
static const GOLDPREMIUM_FLAG = ADMIN_LEVEL_G; // Zwiększony limit AP dla klasy Predator Zombi - Zapis flaga "s"

static const MAX_SAVE_NORMAL = 500;
static const MAX_SAVE_VIP = 800;
static const MAX_SAVE_SVIP = 900;
static const MAX_SAVE_PVIP = 1000;
static const MAX_SAVE_PREMIUM = 1200;
static const MAX_SAVE_EXTRAPREMIUM = 1400;
static const MAX_SAVE_GOLDPREMIUM = 1600;

Czy jest jakiś sposób by informacje w HUD czyli

800/900/1000/1200/1400/1600

czytało po kolei od flagi ADMIN_LEVEL_H w wzwyż flag tak jak mam ustawiony zapis ? Nie wiem jak to zrobić inaczej, a już trochę grzebie i nic nie wychodzi  :wstyd:


  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#2 PANDA_2zl

    Guru

  • Power User

Reputacja: 177
Profesjonalista

  • Postów:724
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 07.01.2022 03:13

Jeśli dobrze rozumiem, to ja bym zrobił statyczne te wartości w HUD i tylko sprawdzał czy gracz ma daną flagę i wyświetlał mu odpowiednie HUD, ale pewnie są bardziej optymalne rozwiązania

Chyba że da się to zapisać w jednym HUD ale tego nie miałem okazji testować

Użytkownik SezonowyGracz edytował ten post 07.01.2022 03:17

  • +
  • -
  • 1

#3 WiChuRa.

    Pomocny

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:48
  • Imię:Ww
  • Lokalizacja:Ww
Offline

Napisano 07.01.2022 13:14

Spróbuj tak, na początku pluga:

new flaga[20];

 potem do hud'a:

	if(get_user_flags(target) & Jakas flaga)
		flaga = "12"
	else if(get_user_flags(target) & Jakas flaga)
		flaga = "123"
	else if(get_user_flags(target) & Jakasflaga)
		flaga = "1234"
        else
		flaga = "123434"

Wtedy w hud wpiszesz tak:

ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
		flaga)

  • +
  • -
  • 1

WiChuRa.

https://amxx.pl/user/70221-wichura/

Robię coś źle? Powiedz mi co nie chce gotowców.

 


#4 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 14:50

 

Spróbuj tak, na początku pluga:

new flaga[20];

 potem do hud'a:

	if(get_user_flags(target) & Jakas flaga)
		flaga = "12"
	else if(get_user_flags(target) & Jakas flaga)
		flaga = "123"
	else if(get_user_flags(target) & Jakasflaga)
		flaga = "1234"
        else
		flaga = "123434"

Wtedy w hud wpiszesz tak:

ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
		flaga)

 

Zrobiłem tak jak napisałeś, ale mam błędy:

//// zombie_plague.sma
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8578) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8580) : warning 217: loose indentation
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8580) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8582) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8584) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8586) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8588) : error 017: undefined symbol "target"
// C:\Users\asus\Desktop\Kompilator dla Jokera\zombie_plague.sma(8592) : warning 217: loose indentation
//
// 6 Errors.
// Could not locate output file compiled\zombie_plague.amx (compile failed).
//
// Compilation Time: 2,86 sec
// ----------------------------------------

  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#5 WiChuRa.

    Pomocny

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:48
  • Imię:Ww
  • Lokalizacja:Ww
Offline

Napisano 07.01.2022 14:55

dodaj:

new target;

przed

	if(get_user_flags(target) & Jakas flaga)
		flaga = "12"
	else if(get_user_flags(target) & Jakas flaga)
		flaga = "123"
	else if(get_user_flags(target) & Jakasflaga)
		flaga = "1234"
        else
		flaga = "123434"

By wyglądało mniej więcej tak:

	new target;
	
	if(get_user_flags(target) & Wlasciciel)
		flaga = "12"
	else if(get_user_flags(target) & Opiekun)
		flaga = "123"
	else if(get_user_flags(target) & VIP)
		flaga = "1234"
        else
		flaga = "123434" 
I się skompiluje :)

 


Użytkownik WiChuRa. edytował ten post 07.01.2022 14:56

  • +
  • -
  • 1

WiChuRa.

https://amxx.pl/user/70221-wichura/

Robię coś źle? Powiedz mi co nie chce gotowców.

 


#6 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 15:27

 

dodaj:

new target;

przed

	if(get_user_flags(target) & Jakas flaga)
		flaga = "12"
	else if(get_user_flags(target) & Jakas flaga)
		flaga = "123"
	else if(get_user_flags(target) & Jakasflaga)
		flaga = "1234"
        else
		flaga = "123434"

By wyglądało mniej więcej tak:

	new target;
	
	if(get_user_flags(target) & Wlasciciel)
		flaga = "12"
	else if(get_user_flags(target) & Opiekun)
		flaga = "123"
	else if(get_user_flags(target) & VIP)
		flaga = "1234"
        else
		flaga = "123434" 
I się skompiluje :)

 

 

Aktualnie wyświetla mi na grze tak:

[Twoje Ammo Paki: 141 / 800]

a chciałbym osiągnąć, aby wyświetlało:

[Twoje Ammo Paki: 141 / 1600]

dodałem sobie wszystkie flagi w razie pytań.

Obecnie kod wygląda tak:

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga[target])
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

masz może jakiś pomysł, jak to zrobić ?

 

Dodam tylko że oryginalnie wyglądało to tak:

[Twoje Ammo Paki: 141]

chcę tą dodatkową informacje dodać pod flagi, bo zwiększyłem AP dla poszczególnych flag w pluginie od zapisu i chce osiągnąć aby informacja była widziana dla graczy + żeby zawsze czytało/wyświetlało najpierw flagę która jest wyższa w hierarchii która jest ustalona tak jak ustaliłem flagi, mam nadzieje że mnie zrozumiesz  :facepalm2:


Użytkownik MrZohan edytował ten post 07.01.2022 15:38

  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#7 WiChuRa.

    Pomocny

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:48
  • Imię:Ww
  • Lokalizacja:Ww
Offline

Napisano 07.01.2022 15:41

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
                else
                flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Spróbuj tak.

 

Zamiast 

else if(get_user_flags(target) && ADMIN_LEVEL_G)

to:

else if(get_user_flags(target) & ADMIN_LEVEL_G)

Użytkownik WiChuRa. edytował ten post 07.01.2022 15:47

  • +
  • -
  • 1

WiChuRa.

https://amxx.pl/user/70221-wichura/

Robię coś źle? Powiedz mi co nie chce gotowców.

 


#8 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 15:52

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
                else
                flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Spróbuj tak.

 

Dalej pokazuje 800 a powinno 1600 czyli czytać flage "s" jako najwyższą w hierarchii

próbowałem wczoraj zrobić to tak:

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
		
	static const NORMAL_FLAG = ADMIN_USER; // Limit AP zwyklego gracza - Zapis flaga "z"
	static const VIP_FLAG = ADMIN_LEVEL_H; // Pokaz limit AP dla klasy Tesla Zombi - Zapis flaga "t"
	static const SVIP_FLAG = ADMIN_LEVEL_E; // Pokaz limit AP dla klasy Obcy Zombi - Zapis flaga "q"
	static const PVIP_FLAG = ADMIN_LEVEL_B; // Pokaz limit AP dla klasy Mumia Zombi - Zapis flaga "n"
	static const PREMIUM_FLAG = ADMIN_LEVEL_A; // Pokaz limit AP dla klasy Wilk Zombi - Zapis flaga "m"
	static const EXTRAPREMIUM_FLAG = ADMIN_LEVEL_D; // Pokaz limit AP dla klasy Haker Zombi - Zapis flaga "p"
	static const GOLDPREMIUM_FLAG = ADMIN_LEVEL_G; // Pokaz limit AP dla klasy Predator - Zapis flaga "s"

	static const MAX_SAVE_NORMAL = 500;
	static const MAX_SAVE_VIP = 800;
	static const MAX_SAVE_SVIP = 900;
	static const MAX_SAVE_PVIP = 1000;
	static const MAX_SAVE_PREMIUM = 1200;
	static const MAX_SAVE_EXTRAPREMIUM = 1400;
	static const MAX_SAVE_GOLDPREMIUM = 1600;
	
	// Spectating someone else?
	if (id != ID_SHOWHUD)
	{
	// Show name, health, class, and ammo packs
		set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
		ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id])
	}
	else
	{
	// Show health, class and ammo packs
		set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
		ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
		get_user_flags(id) & GOLDPREMIUM_FLAG > MAX_SAVE_GOLDPREMIUM ? "1600" : "500",
		EXTRAPREMIUM_FLAG > MAX_SAVE_EXTRAPREMIUM,
		PREMIUM_FLAG > MAX_SAVE_PREMIUM,
		PVIP_FLAG > MAX_SAVE_PVIP,
		SVIP_FLAG > MAX_SAVE_SVIP,
		get_user_flags(id) & VIP_FLAG > MAX_SAVE_VIP ? "800" : "400",
		NORMAL_FLAG > MAX_SAVE_NORMAL)
	}
} 

niestety ale na tym przykładzie jest to samo, wiem że jesteśmy blisko, tylko trzeba dodać coś żeby czytało to po kolei wedle ustalonej hierarchii, cóż kombinuje dalej może coś wyjdzie i się uda


  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#9 WiChuRa.

    Pomocny

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:48
  • Imię:Ww
  • Lokalizacja:Ww
Offline

Napisano 07.01.2022 15:55

W edytowanym poście napisałem użyj jednego 

& nie dwóch czyli:

else if(get_user_flags(target) & cos)

  • +
  • -
  • 1

WiChuRa.

https://amxx.pl/user/70221-wichura/

Robię coś źle? Powiedz mi co nie chce gotowców.

 


#10 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 16:06

 

W edytowanym poście napisałem użyj jednego 

& nie dwóch czyli:

else if(get_user_flags(target) & cos)

 

Dalej to samo w dodatku zabrałem sobie flagę "t" i wyświetla:

[Twoje Ammo Paki: 141 / 800]

a powinno wyświetlać tą drugą która jest w hierarchii czyli flagę "q" i wyświetlać następująco:

[Twoje Ammo Paki: 141 / 900]

może jest na tym forum jakaś dobra duszyczka co podpowie, co źle robimy?  :wstyd:


Użytkownik MrZohan edytował ten post 07.01.2022 16:07

  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#11 Roughster

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:180
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:localhost
Offline

Napisano 07.01.2022 16:22

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Jak już to tak ;)


  • +
  • -
  • 1

#12 Roughster

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:180
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:localhost
Offline

Napisano 07.01.2022 16:26

Poprawka*

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) & ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(target) & ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) & ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) & ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) & ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) & ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

  • +
  • -
  • 1

#13 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 16:31

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Jak już to tak ;)

 

 

Dalej wyświetla 800, a nie mam flagi "t" dodanej. 


  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#14 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 16:41

 

Poprawka*

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) & ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(target) & ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) & ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) & ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) & ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) & ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

 

Już prawie myślałem że działa, ale odebrałem sobie wszystkie flagi i zostawiłem tylko "z" wynik:

[Twoje Ammo Paki: 141 / 1600] - czyli dalej nie działa.

Masz może jakiś jeszcze pomysł ? 


  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#15 MrZohan

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -7
Nowy

  • Postów:87
  • GG:
  • Imię:Zohan
  • Lokalizacja:Polska❤
Offline

Napisano 07.01.2022 19:03   Najlepsza odpowiedź

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	new target;
	
	{
		if(get_user_flags(target) && ADMIN_LEVEL_H)
		flaga = "800"
		else if(get_user_flags(target) && ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(target) && ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(target) && ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(target) && ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(target) && ADMIN_LEVEL_G)
		flaga = "1600"
                else
                flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga[target])
		}
	}
}

Spróbuj tak.

 

Zamiast 

else if(get_user_flags(target) && ADMIN_LEVEL_G)

to:

else if(get_user_flags(target) & ADMIN_LEVEL_G)

 

Ok zrobione.

 

Zamiast:

else if(get_user_flags(target) & ADMIN_LEVEL_G)

To dałem id, czyli:

if(get_user_flags(id) & ADMIN_LEVEL_G)

Całość działająca wygląda następująco:

// Show HUD Task
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	// Player died?
	if (!g_isalive[id])
	{
		// Get spectating target
		id = pev(id, PEV_SPEC_TARGET)
		
		// Target not alive
		if (!g_isalive[id]) return;
	}
	
	// Format classname
	static class[32], red, green, blue
	
	if (g_zombie[id]) // zombies
	{
		red = 255
		green = 20
		blue = 0
		
		if (g_nemesis[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_NEMESIS")
		else
			formatex(class, charsmax(class), "%L Zombi", ID_SHOWHUD, g_zombie_classname[id])
	}
	else // humans
	{
		red = 0
		green = 255
		blue = 0
		
		if (g_survivor[id])
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_SURVIVOR")
		else
			formatex(class, charsmax(class), "%L", ID_SHOWHUD, "CLASS_HUMAN")
	}
	
	{
		if(get_user_flags(id) & ADMIN_LEVEL_G)
		flaga = "1600"
		else if(get_user_flags(id) & ADMIN_LEVEL_D)
		flaga = "1400"
		else if(get_user_flags(id) & ADMIN_LEVEL_A)
		flaga = "1200"
		else if(get_user_flags(id) & ADMIN_LEVEL_B)
		flaga = "1000"
		else if(get_user_flags(id) & ADMIN_LEVEL_E)
		flaga = "900"
		else if(get_user_flags(id) & ADMIN_LEVEL_H)
		flaga = "800"
		else
		flaga = "500"
	
		// Spectating someone else?
		if (id != ID_SHOWHUD)
		{
		// Show name, health, class, and ammo packs
			set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[Zdrowie: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", pev(id, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id],
			flaga)
		}
		else
		{
		// Show health, class and ammo packs
			set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.2, 0.0, 0.0, -1)
			ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "[%L: %d | Kamizelka: %d]^n^n[%L %s]^n[%L %d / %s]", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), get_user_armor(id), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD],
			flaga)
		}
	}
}

+ gdyby ktoś chciał tego użyć w swoim silniku zombie_plague to w: // Player vars na końcu, czyli na dole dodajemy:

new flaga[33] // Informacja w HUD ile graczowi (na danej usludze) zostana zapisane ammo paki.

Problem rozwiązany. Dziękuje pięknie za pomoc. 


  • +
  • -
  • 0

Każdy ma jakieś swoje perełki :cfaniak:
*** ZOMBI PLAGUE ***


#16 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 10.01.2022 07:00

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




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

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