Информация об игроке в боковой панели.

Parlament Admin

Участник
Сообщения
69
Реакции
2
Помогите создать плагин котрый будет показывать сбоку всего 2 значения.

Тип игрока: Зомби/человек
Здоровье: 0 хп

Вот примерно так.
Буду очень благодарен за помощь, пытался сам сделать, но у меня сервер зависает и падает:)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
Re: Информация об игрока в боковой панели.

PHP:
#pragma semicolon 1
#include <sourcemod>
#include <zombiereloaded>

public OnMapStart() CreateTimer(2.0, SetPanel, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);

public Action:SetPanel(Handle:hTimer)
{
	for(new i=1; i <=MaxClients; i++)
	{
		if(IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i))
		{
			new Handle:panel = CreatePanel(); 
			SetPanelTitle(panel, "Инфо:\n \n"); 
			DrawPanelText(panel, ZR_IsClientHuman(iClient) ? "Человек": "Зомби"); 
			decl String:sHP[20];
			IntToString(GetClientHealth(i), sHP, sizeof(sHP));
			DrawPanelText(panel, sHP);
			SendPanelToClient(panel, i, Select_Panel, 2);
			CloseHandle(panel);
		}
	}
}

public Select_Panel(Handle:panel, MenuAction:action, client, option) {}

это если слева в меню. Хотя лучше было бы справа сделать.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
Re: Информация об игрока в боковой панели.

PHP:
#pragma semicolon 1
#include <sourcemod>
#include <zombiereloaded>

public OnMapStart() CreateTimer(2.0, SetPanel, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);

public Action:SetPanel(Handle:hTimer)
{
	for(new i=1; i <=MaxClients; i++)
	{
		if(IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i)) SendMessage(i);
	}
}

stock SendMessage(iClient)
{
	new Handle:hMessage = StartMessageOne("KeyHintText", iClient);
	if (hMessage != INVALID_HANDLE)
	{
		decl String:sMessage[150];
		FormatEx(sMessage, sizeof(sMessage), "Инфо:\n \n%s\n%d", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient));
		BfWriteByte(hMessage, 1); 
		BfWriteString(hMessage, sMessage); 
		EndMessage();
	}
}
 

Parlament Admin

Участник
Сообщения
69
Реакции
2
Re: Информация об игрока в боковой панели.

PHP:
#pragma semicolon 1
#include <sourcemod>
#include <zombiereloaded>

public OnMapStart() CreateTimer(2.0, SetPanel, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);

public Action:SetPanel(Handle:hTimer)
{
	for(new i=1; i <=MaxClients; i++)
	{
		if(IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i)) SendMessage(i);
	}
}

stock SendMessage(iClient)
{
	new Handle:hMessage = StartMessageOne("KeyHintText", iClient);
	if (hMessage != INVALID_HANDLE)
	{
		decl String:sMessage[150];
		FormatEx(sMessage, sizeof(sMessage), "Инфо:\n \n%s\n%d", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient));
		BfWriteByte(hMessage, 1); 
		BfWriteString(hMessage, sMessage); 
		EndMessage();
	}
}

RIKO ты как всегда лучший :)

Добавлено через 4 минуты
FormatEx(sMessage, sizeof(sMessage), "Инфо:\n \n%s\n%d", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient));
Рико сразу вопрос назрел, Инфо это вместо слова тип? и с какой стороны будет отображаться меню?
Просто не где протестировать :)
 
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Re: Информация об игрока в боковой панели.

Parlament Admin, отображаться будет скажем как это, справа:
658901E0A7811BE9C36608A8145BAC5DE6C12BC0
Будет отображаться
C-подобный:
Инфо:

Человек
50
А как тебе надо:
PHP:
FormatEx(sMessage, sizeof(sMessage), "Тип: %s\nHP:%d", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient ));
 

Parlament Admin

Участник
Сообщения
69
Реакции
2
Re: Информация об игрока в боковой панели.

Parlament Admin, отображаться будет скажем как это, справа:
658901E0A7811BE9C36608A8145BAC5DE6C12BC0
Будет отображаться
C-подобный:
Инфо:

Человек
50
А как тебе надо:
PHP:
FormatEx(sMessage, sizeof(sMessage), "Тип: %s\nHP:%d", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient ));
Вот так хотелось.

[Тип: Человек/Зомби]
[Здоровье: xxxx HP]

Вот примерно так как на скрине.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #8
Re: Информация об игрока в боковой панели.

PHP:
FormatEx(sMessage, sizeof(sMessage), "Инфо:\n \n[Тип: %s]\n[Здоровье: %d HP]", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient));
 
Сообщения
24
Реакции
0
Re: Информация об игрока в боковой панели.

PHP:
FormatEx(sMessage, sizeof(sMessage), "Инфо:\n \n[Тип: %s]\n[Здоровье: %d HP]", ZR_IsClientHuman(iClient) ? "Человек":"Зомби", GetClientHealth(iClient));

а разве панель не перебьется другой панелью , а значит нужен таймер )
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Сверху Снизу