Damage Textdraw
#1

Well i took this from "AttackDefend' by TeKSquad
There are no errors neither any warnings but still it's not working.

pawn Код:
#include <a_samp>
#include <foreach> // Used to loop through all connected players

new PlayerText: DoingDamage[3][MAX_PLAYERS]; // Shows when player hit someone.
new PlayerText: GettingDamaged[3][MAX_PLAYERS]; // Shows when someone hit you.

// - OnPlayerTakeDamage Variables

new bool:Declared[4][MAX_PLAYERS];
new gLastHit[6][MAX_PLAYERS];
new TakeDmgCD[9][MAX_PLAYERS];
new H[6][MAX_PLAYERS];
new Float:HPLost[2][MAX_PLAYERS][MAX_PLAYERS];
new Float:ILost[MAX_PLAYERS];
new WeaponNames[55][] =
{
        {"Punch"},{"Brass Knuckles"},{"Golf Club"},{"Nite Stick"},{"Knife"},{"Baseball Bat"},{"Shovel"},{"Pool Cue"},{"Katana"},{"Chainsaw"},{"Purple Dildo"},
        {"Smal White Vibrator"},{"Large White Vibrator"},{"Silver Vibrator"},{"Flowers"},{"Cane"},{"Grenade"},{"Tear Gas"},{"Molotov Cocktail"},
        {""},{""},{""}, // Empty spots for ID 19-20-21 (invalid weapon id's)
        {"9mm"},{"Silenced 9mm"},{"Deagle"},{"Shotgun"},{"Sawn-off"},{"Combat"},{"Micro SMG"},{"MP5"},{"AK-47"},{"M4"},{"Tec9"},
        {"Rifle"},{"Sniper"},{"Rocket"},{"HS Rocket"},{"Flamethrower"},{"Minigun"},{"Satchel Charge"},{"Detonator"},
        {"Spraycan"},{"Fire Extinguisher"},{"Camera"},{"Nightvision Goggles"},{"Thermal Goggles"},{"Parachute"}, {"Fake Pistol"},{""}, {"Vehicle"}, {"Helicopter Blades"},
        {"Explosion"}, {""}, {"Drowned"}, {"Collision"}
};

enum PlayerVariables {
    bool:Spawned,
}
new Player[MAX_PLAYERS][PlayerVariables];

forward OnScriptUpdate();

public OnGameModeInit()
{
    SetTimer("OnScriptUpdate", 1000, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    LoadPlayerTextDraws(playerid);
    Player[playerid][Spawned] = false;
    return 1;
}
public OnPlayerSpawn(playerid)
{
    Player[playerid][Spawned] = true;
    return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    /*if(GetPlayerTeam(issuerid) != GetPlayerTeam(playerid))
    {
        PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    }*/

    PlayerPlaySound(playerid, 1131, 0, 0, 0);

    new Float:Health[3], Float:Damage;
    GetPlayerHealth(playerid, Health[0]);
    GetPlayerArmour(playerid, Health[1]);

    if(Health[0] > 0) {
        if(amount > Health[0]) {
            Damage = amount - Health[0];
            amount = amount - Damage;
        }
    }

    Health[2] = (Health[0] + Health[1]) - amount;
    if(Health[2] < 0) Health[2] = 0;

    new iString[160];
    if(issuerid != INVALID_PLAYER_ID)
    {
        //if(GetPlayerTeam(issuerid) == GetPlayerTeam(playerid)) return 1;

        PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
       
        HPLost[0][issuerid][playerid] += amount;
        HPLost[1][playerid][issuerid] += amount;

        if(Declared[0][issuerid] == false && gLastHit[1][issuerid] != playerid && gLastHit[2][issuerid] != playerid)
        {
            gLastHit[0][issuerid] = playerid;
            Declared[0][issuerid] = true;
        }

        if(gLastHit[0][issuerid] == playerid)
        {
            format(iString, sizeof(iString), "~r~~h~%s  ~h~/ -%.0f ~r~~h~%s ~h~(%.0f)", PlayerName(playerid), HPLost[0][issuerid][playerid], WeaponNames[weaponid], Health[2]);
            PlayerTextDrawSetString(issuerid, DoingDamage[0][issuerid], iString);
            TakeDmgCD[0][issuerid] = 1;
            H[0][issuerid] = playerid;

        }
        else
        {
            if(Declared[1][issuerid] == false && gLastHit[2][issuerid] != playerid)
            {
                gLastHit[1][issuerid] = playerid;
                Declared[1][issuerid] = true;
            }

            if(gLastHit[1][issuerid] == playerid )
            {
                format(iString, sizeof(iString), "~r~~h~%s  ~h~/ -%.0f ~r~~h~%s ~h~(%.0f)", PlayerName(playerid), HPLost[0][issuerid][playerid], WeaponNames[weaponid], Health[2]);
                PlayerTextDrawSetString(issuerid, DoingDamage[1][issuerid], iString);
                TakeDmgCD[1][issuerid] = 1;
                H[1][issuerid] = playerid;

            }
            else
            {
                gLastHit[2][issuerid] = playerid;
                format(iString, sizeof(iString), "~r~~h~%s  ~h~/ -%.0f ~r~~h~%s ~h~(%.0f)", PlayerName(playerid), HPLost[0][issuerid][playerid], WeaponNames[weaponid], Health[2]);
                PlayerTextDrawSetString(issuerid, DoingDamage[2][issuerid], iString);
                TakeDmgCD[2][issuerid] = 1;
                H[2][issuerid] = playerid;
            }
        }


        if(Declared[2][playerid] == false && gLastHit[4][playerid] != issuerid && gLastHit[5][playerid] != issuerid){
            gLastHit[3][playerid] = issuerid;
            Declared[2][playerid] = true;
        }
        if(gLastHit[3][playerid] == issuerid) {
            format(iString, sizeof(iString), "~g~~h~%s  ~h~/ -%.0f ~g~~h~%s ~h~(%.0f)", PlayerName(issuerid), HPLost[1][playerid][issuerid], WeaponNames[weaponid], Health[2]);
            PlayerTextDrawSetString(playerid, GettingDamaged[0][playerid], iString);
            TakeDmgCD[3][playerid] = 1;
            H[3][playerid] = issuerid;

        }
        else
        {
            if(Declared[3][playerid] == false && gLastHit[5][playerid] != issuerid) {
                gLastHit[4][playerid] = issuerid;
                Declared[3][playerid] = true;
            }
            if(gLastHit[4][playerid] == issuerid) {
                format(iString, sizeof(iString), "~g~~h~%s  ~h~/ -%.0f ~g~~h~%s ~h~(%.0f)", PlayerName(issuerid), HPLost[1][playerid][issuerid], WeaponNames[weaponid], Health[2]);
                PlayerTextDrawSetString(playerid, GettingDamaged[1][playerid], iString);
                TakeDmgCD[4][playerid] = 1;
                H[4][playerid] = issuerid;
            }
            else
            {
                gLastHit[5][playerid] = issuerid;
                format(iString, sizeof(iString), "~g~~h~%s  ~h~/ -%.0f ~g~~h~%s ~h~(%.0f)", PlayerName(issuerid), HPLost[1][playerid][issuerid], WeaponNames[weaponid], Health[2]);
                PlayerTextDrawSetString(playerid, GettingDamaged[2][playerid], iString);
                TakeDmgCD[5][playerid] = 1;
                H[5][playerid] = issuerid;

            }
        }
    }
    else
    {
        if(GetPlayerState(playerid) != PLAYER_STATE_WASTED)
        {

            ILost[playerid] += amount;
            if(gLastHit[3][playerid] < 0) {
                format(iString, sizeof(iString), "~g~~h~~h~-%.0f ~g~~h~%s ~h~(%.0f)",ILost[playerid], WeaponNames[weaponid], Health[2]);
                PlayerTextDrawSetString(playerid, GettingDamaged[0][playerid], iString);
                TakeDmgCD[6][playerid] = 1;

            }
            else
            {
                if(gLastHit[4][playerid] < 0)
                {
                    format(iString, sizeof(iString), "~g~~h~~h~-%.0f ~g~~h~%s ~h~(%.0f)",ILost[playerid], WeaponNames[weaponid], Health[2]);
                    PlayerTextDrawSetString(playerid, GettingDamaged[1][playerid], iString);
                    TakeDmgCD[7][playerid] = 1;

                }
                else
                {
                    format(iString, sizeof(iString), "~g~~h~~h~-%.0f ~g~~h~%s ~h~(%.0f)", ILost[playerid], WeaponNames[weaponid], Health[2]);
                    PlayerTextDrawSetString(playerid, GettingDamaged[2][playerid], iString);
                    TakeDmgCD[8][playerid] = 1;
                }
            }
        }
    }
    return 1;
}

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    for(new i = 0; i < 3; i++)
    {
        PlayerTextDrawShow(playerid, DoingDamage[i][playerid]);
        PlayerTextDrawShow(playerid, GettingDamaged[i][playerid]);
    }
    return 1;
}

LoadPlayerTextDraws(playerid)
{
    //:Damage://
    DoingDamage[0][playerid] = CreatePlayerTextDraw(playerid,180.0,362.0,"_");
    PlayerTextDrawFont(playerid, DoingDamage[0][playerid], 1);
    PlayerTextDrawLetterSize(playerid, DoingDamage[0][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, DoingDamage[0][playerid],0x00000044);
    PlayerTextDrawColor(playerid, DoingDamage[0][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, DoingDamage[0][playerid], 1);
    PlayerTextDrawSetOutline(playerid, DoingDamage[0][playerid],1);
    PlayerTextDrawSetShadow(playerid, DoingDamage[0][playerid],0);

    DoingDamage[1][playerid] = CreatePlayerTextDraw(playerid,180.0,372.0,"_");
    PlayerTextDrawFont(playerid, DoingDamage[1][playerid], 1);
    PlayerTextDrawLetterSize(playerid, DoingDamage[1][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, DoingDamage[1][playerid],0x00000044);
    PlayerTextDrawColor(playerid, DoingDamage[1][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, DoingDamage[1][playerid], 1);
    PlayerTextDrawSetOutline(playerid, DoingDamage[1][playerid],1);
    PlayerTextDrawSetShadow(playerid, DoingDamage[1][playerid],0);

    DoingDamage[2][playerid] = CreatePlayerTextDraw(playerid,180.0,382.0,"_");
    PlayerTextDrawFont(playerid, DoingDamage[2][playerid], 1);
    PlayerTextDrawLetterSize(playerid, DoingDamage[2][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, DoingDamage[2][playerid],0x00000044);
    PlayerTextDrawColor(playerid, DoingDamage[2][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, DoingDamage[2][playerid], 1);
    PlayerTextDrawSetOutline(playerid, DoingDamage[2][playerid],1);
    PlayerTextDrawSetShadow(playerid, DoingDamage[2][playerid],0);

    GettingDamaged[0][playerid] = CreatePlayerTextDraw(playerid,400.0,362.0,"_");
    PlayerTextDrawFont(playerid, GettingDamaged[0][playerid], 1);
    PlayerTextDrawLetterSize(playerid, GettingDamaged[0][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, GettingDamaged[0][playerid],0x00000044);
    PlayerTextDrawColor(playerid, GettingDamaged[0][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, GettingDamaged[0][playerid], 1);
    PlayerTextDrawSetOutline(playerid, GettingDamaged[0][playerid],1);
    PlayerTextDrawSetShadow(playerid, GettingDamaged[0][playerid],0);

    GettingDamaged[1][playerid] = CreatePlayerTextDraw(playerid,400.0,372.0,"_");
    PlayerTextDrawFont(playerid, GettingDamaged[1][playerid], 1);
    PlayerTextDrawLetterSize(playerid, GettingDamaged[1][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, GettingDamaged[1][playerid],0x00000044);
    PlayerTextDrawColor(playerid, GettingDamaged[1][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, GettingDamaged[1][playerid], 1);
    PlayerTextDrawSetOutline(playerid, GettingDamaged[1][playerid],1);
    PlayerTextDrawSetShadow(playerid, GettingDamaged[1][playerid],0);

    GettingDamaged[2][playerid] = CreatePlayerTextDraw(playerid,400.0,382.0,"_");
    PlayerTextDrawFont(playerid, GettingDamaged[2][playerid], 1);
    PlayerTextDrawLetterSize(playerid, GettingDamaged[2][playerid], 0.23000, 1.0);
    PlayerTextDrawBackgroundColor(playerid, GettingDamaged[2][playerid],0x00000044);
    PlayerTextDrawColor(playerid, GettingDamaged[2][playerid], 16727295);
    PlayerTextDrawSetProportional(playerid, GettingDamaged[2][playerid], 1);
    PlayerTextDrawSetOutline(playerid, GettingDamaged[2][playerid],1);
    PlayerTextDrawSetShadow(playerid, GettingDamaged[2][playerid],0);
    //:::END::://
}

stock PlayerName(playerid)
{
    new name[24];
    GetPlayerName(playerid,name,sizeof name);
    return name;
}


public OnScriptUpdate()
{

    foreach(new i : Player)
    {

        if(TakeDmgCD[0][i] > 0)
        {
            TakeDmgCD[0][i]++;
            if(TakeDmgCD[0][i] == 5)
            {
                Declared[0][i] = false;
                gLastHit[0][i] = -1;
                HPLost[0][i][H[0][i]] = 0;
                PlayerTextDrawSetString(i, DoingDamage[0][i], "_");
                TakeDmgCD[0][i] = 0;
            }
        }
        if(TakeDmgCD[1][i] > 0)
        {
            TakeDmgCD[1][i]++;
            if(TakeDmgCD[1][i] == 5)
            {
                Declared[1][i] = false;
                gLastHit[1][i] = -2;
                HPLost[0][i][H[1][i]] = 0;
                PlayerTextDrawSetString(i, DoingDamage[1][i], "_");
                TakeDmgCD[1][i] = 0;
            }
        }
        if(TakeDmgCD[2][i] > 0)
        {
            TakeDmgCD[2][i]++;
            if(TakeDmgCD[2][i] == 5)
            {
                HPLost[0][i][H[2][i]] = 0;
                PlayerTextDrawSetString(i, DoingDamage[2][i], "_");
                gLastHit[2][i] = -3;
                TakeDmgCD[2][i] = 0;
            }
        }
        if(TakeDmgCD[3][i] > 0)
        {
            TakeDmgCD[3][i]++;
            if(TakeDmgCD[3][i] == 5)
            {
                Declared[2][i] = false;
                gLastHit[3][i] = -1;
                HPLost[1][i][H[3][i]] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[0][i], "_");
                TakeDmgCD[3][i] = 0;
            }
        }
        if(TakeDmgCD[4][i] > 0)
        {
            TakeDmgCD[4][i]++;
            if(TakeDmgCD[4][i] == 5)
            {
                Declared[3][i] = false;
                gLastHit[4][i] = -2;
                HPLost[1][i][H[4][i]] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[1][i], "_");
                TakeDmgCD[4][i] = 0;
            }
        }
        if(TakeDmgCD[5][i] > 0)
        {
            TakeDmgCD[5][i]++;
            if(TakeDmgCD[5][i] == 5)
            {
                gLastHit[5][i] = -3;
                HPLost[1][i][H[5][i]] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[2][i], "_");
                TakeDmgCD[5][i] = 0;
            }
        }
        if(TakeDmgCD[6][i] > 0)
        {
            TakeDmgCD[6][i]++;
            if(TakeDmgCD[6][i] == 5)
            {
                ILost[i] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[0][i], "_");
                TakeDmgCD[6][i] = 0;
            }
        }
        if(TakeDmgCD[7][i] > 0)
        {
            TakeDmgCD[7][i]++;
            if(TakeDmgCD[7][i] == 5)
            {
                ILost[i] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[1][i], "_");
                TakeDmgCD[7][i] = 0;
            }
        }
        if(TakeDmgCD[8][i] > 0)
        {
            TakeDmgCD[8][i]++;
            if(TakeDmgCD[8][i] == 5)
            {
                ILost[i] = 0;
                PlayerTextDrawSetString(i, GettingDamaged[2][i], "_");
                TakeDmgCD[8][i] = 0;
            }
        }
    }
    return 1;
}
Reply
#2

Removed
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)