I name Alex
Умник
у меня под ником пишется здоровья и брони, но они не сразу обновляются и когда игрок выходит, заходит другой игрок на него айди и у него удваивается 3dtext, не знаю ка это исправить, помогите пожалуйста.
PHP:
new Text3D: hpam[MAX_PLAYERS];
OnPlayerTakeDamage
{
new str[200];
new Float:hp, Float:armour;
GetPlayerHealth(playerid, hp);
GetPlayerArmour(playerid, armour);
format(str, sizeof(str), "Здоровья: [%.0f%%] | Брони: [%.0f%%]", hp, armour);
Update3DTextLabelText(hpam[playerid], 0xFFFFFFFF, str);
}
public OnPlayerSpawn(playerid)
{
new string_2[150];
new Float:hp, Float:armour;
GetPlayerHealth(playerid, hp);
GetPlayerArmour(playerid, armour);
format(string_2, sizeof(string_2), "Здоровья: [%.0f%%] | Брони: [%.0f%%", hp, armour);
hpam[playerid] = Create3DTextLabel(string_2, 0xFFFFFFFF, 7.77, 7.77, 7.77, 1.0, 0, 1);
Attach3DTextLabelToPlayer(hpam[playerid], playerid, 0.0, 0.0, 0.4);
}
CMD:sethp(playerid, params[])
{
if(player_info[playerid][pAdmin] < ADM_SUPER_MODER) return true;
else if(AdminLogged[playerid] == false) return SendClientMessage(playerid, 0xFFFFFFFF, YouAreNotLoggedInAsAdmin);
else if(sscanf(params, "ui", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /sethp [id игрока] [кол-во жизней]");
else if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xBEBEBEAA, PlayerIsNotOnline);
else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, 0xBEBEBEAA, PlayerIsNotAuthorized);
else if(params[1] > 100 || params[1] < 0) return SendClientMessage(playerid, 0xBEBEBEAA, "Количество жизней от 0 до 100!");
player_info[params[0]][pHeal] = params[1];
player_info[params[0]][pHealthS] = params[1];
SetHealth(params[0], params[1]);
new string[128];
format(string, sizeof(string), "Администратор %s[%d] изменил Вам показатель здоровья на %i", player_info[playerid][pRussNames], playerid, params[1]);
SendClientMessage(params[0], COLOR_WHITE, string);
format(string, sizeof(string), "[A] %s[%d] изменил показатель здоровья игроку %s[%d] на %i", player_info[playerid][pRussNames], playerid, player_info[params[0]][pRussNames], params[0], params[1]);
SendAdminMessage(0xBEBEBEAA, string);
new str[200];
new Float:armour, Float:hp;
GetPlayerHealth(params[0], hp);
GetPlayerArmour(params[0], armour);
format(str, sizeof(str), "Здоровья: [%.0f%%] | Брони: [%.0f%%]", hp, armour);
Update3DTextLabelText(hpam[params[0]], 0xFFFFFFFF, str);
return true;
}
CMD:setam(playerid, params[])
{
if(player_info[playerid][pAdmin] < ADM_ADMIN) return true;
else if(AdminLogged[playerid] == false) return SendClientMessage(playerid, 0xFFFFFFFF, YouAreNotLoggedInAsAdmin);
else if(sscanf(params, "ui", params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /setam [id игрока] [кол-во брони]");
else if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xBEBEBEAA, PlayerIsNotOnline);
else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, 0xBEBEBEAA, PlayerIsNotAuthorized);
else if(params[1] > 100 || params[1] < 0) return SendClientMessage(playerid, 0xBEBEBEAA, "Количество брони от 0 до 100!");
SetArmour(params[0], params[1]);
new string[128];
format(string, sizeof(string), "Администратор %s[%d] изменил Вам показатель брони на %i", player_info[playerid][pRussNames], playerid, params[1]);
SendClientMessage(params[0], COLOR_WHITE, string);
format(string, sizeof(string), "[A] %s[%d] изменил показатель брони игроку %s[%d] на %i", player_info[playerid][pRussNames], playerid, player_info[params[0]][pRussNames], params[0], params[1]);
SendAdminMessage(0xBEBEBEAA, string);
new str[200];
new Float:hp, Float:armour;
GetPlayerHealth(params[0], hp);
GetPlayerArmour(params[0], armour);
format(str, sizeof(str), "Здоровья: [%.0f%%] | Брони: [%.0f%%]", hp, armour);
Update3DTextLabelText(hpam[params[0]], 0xFFFFFFFF, str);
return true;
}
