26.07.2017, 20:23
PHP код:
// Name: HidBar
// Author: Hiddos
// Date: 21st March 2011
// Version: 1.1
// Don't re-release without permission.
#include <a_samp>
#include <zcmd>
#define HITCOLOR 0xFFFFFFAA
#define MAX_HEALTH_LENGTH 2
new Float:old_hp[MAX_PLAYERS];
new Float:old_ap[MAX_PLAYERS];
new bool:ativado[MAX_PLAYERS];
CMD:filterscript(playerid, params[])
{
if(ativado[playerid] == false){
ativado[playerid] = true;
}
else
{
ativado[playerid] = false;
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(ativado[playerid] == true){
new Float:new_hp, Float:new_ap;
GetPlayerArmour(playerid, new_ap);
GetPlayerHealth(playerid, new_hp);
if(new_hp >= old_hp[playerid] && new_ap >= old_ap[playerid])
{
old_hp[playerid] = new_hp;
old_ap[playerid] = new_ap;
return 1;
}
new Text3D:hitbar;
new Float:Pos[3];
new diff = floatround( (old_hp[playerid] - new_hp) + (old_ap[playerid] - new_ap) );
new string[MAX_HEALTH_LENGTH + 1];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
format(string, sizeof string, "%i", diff);
hitbar = Create3DTextLabel(string, HITCOLOR, Pos[0], Pos[1], Pos[2] + 0.6, 30.0, 0);
SetTimerEx("UpdateHitBar", 66, 0, "iifffii", _:hitbar, diff, Pos[0], Pos[1], Pos[2] + 0.8, 16, HITCOLOR);
old_hp[playerid] = new_hp;
old_ap[playerid] = new_ap;
}else{
}
return 1;
}
public OnFilterScriptInit()
{
for(new i; i < MAX_PLAYERS; i++)
{
GetPlayerHealth(i, old_hp[i]);
GetPlayerArmour(i, old_ap[i]);
}
return 1;
}
public OnPlayerConnect(playerid)
{
old_hp[playerid] = 100.0;
old_ap[playerid] = 0.0;
return 1;
}
forward UpdateHitBar(Text3D:hitbar, hp, Float:x, Float:y, Float:z, update_no, color);
public UpdateHitBar(Text3D:hitbar, hp, Float:x, Float:y, Float:z, update_no, color)
{
Delete3DTextLabel(hitbar);
update_no--;
if(!update_no) return;
new string[MAX_HEALTH_LENGTH + 1];
z += 0.05;
color -= 12;
format(string, sizeof string, "%i", hp);
hitbar = Create3DTextLabel(string, color, x, y, z, 30.0, 0);
SetTimerEx("UpdateHitBar", 66, 0, "iifffii", _:hitbar, hp, x, y, z, update_no, color);
}
Й basicamente assim, se o jogador digitar /filterscript vai ativar as funзхes que acontecem em cada jogador pra ele, se ele digitar de novo vai desativar, e assim vai.
Pro comando funcionar й necessбrio ter o processador de comandos ZCMD.