jeffreymcdon
Ученик
Сделал TextDraw в котором отображается здоровье игрока. Но столкнулся с проблемой, что показывает ТД не только твоего здоровья, а и остальных игроков. То есть я зашел на сервер, немного попадал и сбил свое здоровье до 80, зашел друг (у него 100 хп) и у меня получилось 2 ТД которые друг на друге лежат 80 (мое хп) и 100 (хп друга)
Код ниже
во всех new:
во всех forward:
Сами TD (в OnGameModeInit):
В OnPlayerSpawn
Сам паблик:
Сама команда:
Код ниже
во всех new:
Код:
new Text:CheckAmount[MAX_PLAYERS][2];
new Float:AR;
new Float:health;
Код:
forward checkhealth();
Код:
CheckAmount[playerid][0] = TextDrawCreate(562.999938, 33.185165, " ");
TextDrawLetterSize(CheckAmount[playerid][0], 0.182999, 0.948740);
TextDrawAlignment(CheckAmount[playerid][0], 1);
TextDrawColor(CheckAmount[playerid][0], -1);
TextDrawSetShadow(CheckAmount[playerid][0], 0);
TextDrawSetOutline(CheckAmount[playerid][0], 0);
TextDrawBackgroundColor(CheckAmount[playerid][0], 51);
TextDrawFont(CheckAmount[playerid][0], 2);
TextDrawSetProportional(CheckAmount[playerid][0], 1);
CheckAmount[playerid][1]= TextDrawCreate(581.333068, 32.940723, " ");
TextDrawLetterSize(CheckAmount[playerid][1], 0.182999, 0.948740);
TextDrawAlignment(CheckAmount[playerid][1], 1);
TextDrawColor(CheckAmount[playerid][1], -1);
TextDrawSetShadow(CheckAmount[playerid][1], 0);
TextDrawSetOutline(CheckAmount[playerid][1], 0);
TextDrawBackgroundColor(CheckAmount[playerid][1], 51);
TextDrawFont(CheckAmount[playerid][1], 2);
TextDrawSetProportional(CheckAmount[playerid][1], 1);
Код:
SetTimer("checkhealth", 1000, 1);
Код:
public checkhealth()
{
for(new i = GetMaxPlayers()-1; i != -1; i--)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerHealth(i, health);
GetPlayerArmour(i, AR);
format(strt, sizeof(strt), "%.0f", health);
TextDrawSetString(CheckAmount[i][0], strt);
format(strt, sizeof(strt), "%0.0f", AR);
TextDrawSetString(CheckAmount[i][1], strt);
}
return true;
}
Код:
CMD:test(playerid)
{
GetPlayerHealth(playerid, health);
GetPlayerArmour(playerid, AR);
format(strt,sizeof(strt),"%.0f",health);
TextDrawSetString(CheckAmount[playerid][0],strt);
format(strt,sizeof(strt),"%0.0f",AR);
TextDrawSetString(CheckAmount[playerid][1],strt);
TextDrawShowForPlayer(playerid,CheckAmount[playerid][0]);
TextDrawShowForPlayer(playerid,CheckAmount[playerid][1]);
}
Последнее редактирование:
