Skocz do zawartości
Paweł

[Poradnik] Hud na komendę

Rekomendowane odpowiedzi

Na początku należy dodać do kodu zmienną globalną typu boolean, w tym celu pod zmiennymi dodajemy

bool g_bHud[MAXPLAYERS + 1];

Następnie w OnPluginStart należy zarejestrować komendę do wyłączania/włączania hudu.

RegConsoleCmd("sm_hud", Hud_CMD);

Do OnClientPutInServer dodajemy

g_bHud[client] = true;

Teraz dodajemy kod do callbacku zarejestrowanej przez nas komendy.

Spoiler
public Action Hud_CMD(int client, int args)
{
	if(g_bHud[client])
	{
		g_bHud[client] = false;
		PrintToChat(client, "[COD:MW] Hud został wyłączony");
	}
	else
	{
		g_bHud[client] = true;
		PrintToChat(client, "[COD:MW] Hud został włączony");
	}
}

 

 

Aby wszystko poprawnie działało zmieniamy kod zawarty w timerze z

Spoiler
public Action:PokazInformacje(Handle:timer, any:client)
{
	if(!IsValidClient(client))
		return;

	if(IsPlayerAlive(client))
		PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], doswiadczenie_gracza[client], poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]);
	else
	{
		new spect = GetEntProp(client, Prop_Send, "m_iObserverMode");
		if(spect == 4 || spect == 5) 
		{
			new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
			if(target != -1 && IsValidClient(target))
				PrintHintText(client, "<font color='#FFFFFF'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], poziom_gracza[target], nazwy_itemow[item_gracza[target]], wytrzymalosc_itemu_gracza[target]);
		}
	}

	hud_task[client] = CreateTimer(0.5, PokazInformacje, client, TIMER_FLAG_NO_MAPCHANGE);
}

 

na

Spoiler
public Action:PokazInformacje(Handle:timer, any:client)
{
	if(!IsValidClient(client))
		return;
		
	if(g_bHud[client])
		return;
		
	if(IsPlayerAlive(client))
		PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], doswiadczenie_gracza[client], poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]);
	else
	{
		new spect = GetEntProp(client, Prop_Send, "m_iObserverMode");
		if(spect == 4 || spect == 5) 
		{
			new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
			if(target != -1 && IsValidClient(target))
				PrintHintText(client, "<font color='#FFFFFF'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], poziom_gracza[target], nazwy_itemow[item_gracza[target]], wytrzymalosc_itemu_gracza[target]);
		}
	}

	hud_task[client] = CreateTimer(0.5, PokazInformacje, client, TIMER_FLAG_NO_MAPCHANGE);
}

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...