16.05.2014, 15:49
(
Последний раз редактировалось GwENiko; 16.05.2014 в 17:54.
)
I have scripted a textdraw that shows the player damage whenever he takes or give damage, although i have noticed it only works when the player is standing still, if he is actually moving and during lag shooting, whenever he gets hits, the textdraw won't show up displaying whether he took damage, or caused.
pawn Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
// Damage System
new string[128];
new Pname[MAX_PLAYER_NAME];
DamageGiven[playerid] = GetPVarFloat(damagedid, "DamageTaken");
TextDrawBackgroundColor(Textdraw4[playerid], 255);
TextDrawFont(Textdraw4[playerid], 1);
TextDrawLetterSize(Textdraw4[playerid], 0.360000, 1.100000);
TextDrawColor(Textdraw4[playerid], 16711935);
TextDrawSetOutline(Textdraw4[playerid], 1);
TextDrawSetProportional(Textdraw4[playerid], 1);
GetPlayerName(damagedid, Pname, sizeof(Pname));
SetPVarFloat(damagedid, "DamageGiven", DamageGiven[damagedid] + amount);
format(string, sizeof(string), "%s +(%.0f)", Pname, DamageGiven[damagedid] + amount);
TextDrawSetString(Textdraw4[playerid], string);
TextDrawShowForPlayer(playerid, Textdraw4[playerid]);
SetTimerEx("DamageGivenTextdraw", 7500, true, "f", damagedid);
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
// Ding System
PlayerPlaySound(issuerid, 17802, 0.0, 0.0, 0.0);
// Damage System
new cstring[128];
new Pname[MAX_PLAYER_NAME];
DamageTaken[issuerid] = GetPVarFloat(issuerid, "DamageTaken");
TextDrawBackgroundColor(Textdraw11[playerid], 255);
TextDrawFont(Textdraw11[playerid], 1);
TextDrawLetterSize(Textdraw11[playerid], 0.350000, 1.300000);
TextDrawColor(Textdraw11[playerid], -16776961);
TextDrawSetOutline(Textdraw11[playerid], 1);
TextDrawSetProportional(Textdraw11[playerid], 1);
GetPlayerName(issuerid, Pname, sizeof(Pname));
GetPVarFloat(issuerid, "DamageTaken");
SetPVarFloat(issuerid, "DamageTaken", DamageTaken[issuerid]+amount);
format(cstring, sizeof(cstring), "%s -(%.0f)", Pname, DamageTaken[issuerid] + amount);
TextDrawSetString(Textdraw11[playerid], cstring);
TextDrawShowForPlayer(playerid, Textdraw11[playerid]);
SetTimerEx("DamageTakenTextdraw", 7500, false,"f", issuerid);
if(issuerid == INVALID_PLAYER_ID)
{
TextDrawBackgroundColor(Textdraw11[playerid], 255);
TextDrawFont(Textdraw11[playerid], 1);
TextDrawLetterSize(Textdraw11[playerid], 0.350000, 1.300000);
TextDrawColor(Textdraw11[playerid], -16776961);
TextDrawSetOutline(Textdraw11[playerid], 1);
TextDrawSetProportional(Textdraw11[playerid], 1);
format(cstring, sizeof(cstring), "Collision -(%.0f)",amount);
TextDrawSetString(Textdraw11[playerid], cstring);
TextDrawShowForPlayer(playerid, Textdraw11[playerid]);
}
return 1;