OnPlayerDeath
#1

Hello,i wanna make that when someone die he falls on the ground with the Anim "Knife Kill"
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(IsPlayerConnected(killerid))
    {
        new hour,minute,second, weaponname[32];
        gettime(hour,minute,second);
        FixHour(hour);
        hour = shifthour;
        GetWeaponName(reason, weaponname, sizeof(weaponname));
        format(PlayerInfo[playerid][pKillLog9], 256, "%s", PlayerInfo[playerid][pKillLog8]);
        format(PlayerInfo[playerid][pKillLog8], 256, "%s", PlayerInfo[playerid][pKillLog7]);
        format(PlayerInfo[playerid][pKillLog7], 256, "%s", PlayerInfo[playerid][pKillLog6]);
        format(PlayerInfo[playerid][pKillLog6], 256, "%s", PlayerInfo[playerid][pKillLog5]);
        format(PlayerInfo[playerid][pKillLog5], 256, "%s", PlayerInfo[playerid][pKillLog4]);
        format(PlayerInfo[playerid][pKillLog4], 256, "%s", PlayerInfo[playerid][pKillLog3]);
        format(PlayerInfo[playerid][pKillLog3], 256, "%s", PlayerInfo[playerid][pKillLog2]);
        format(PlayerInfo[playerid][pKillLog2], 256, "%s", PlayerInfo[playerid][pKillLog1]);
        format(PlayerInfo[playerid][pKillLog1], 256, "%s", PlayerInfo[playerid][pKillLog0]);
        format(PlayerInfo[playerid][pKillLog0], 256, "(%d:%d:%d) %s killed me with %s", hour,minute,second,GetPlayerNameEx(killerid), weaponname);

        format(PlayerInfo[killerid][pKillLog9], 256, "%s", PlayerInfo[killerid][pKillLog8]);
        format(PlayerInfo[killerid][pKillLog8], 256, "%s", PlayerInfo[killerid][pKillLog7]);
        format(PlayerInfo[killerid][pKillLog7], 256, "%s", PlayerInfo[killerid][pKillLog6]);
        format(PlayerInfo[killerid][pKillLog6], 256, "%s", PlayerInfo[killerid][pKillLog5]);
        format(PlayerInfo[killerid][pKillLog5], 256, "%s", PlayerInfo[killerid][pKillLog4]);
        format(PlayerInfo[killerid][pKillLog4], 256, "%s", PlayerInfo[killerid][pKillLog3]);
        format(PlayerInfo[killerid][pKillLog3], 256, "%s", PlayerInfo[killerid][pKillLog2]);
        format(PlayerInfo[killerid][pKillLog2], 256, "%s", PlayerInfo[killerid][pKillLog1]);
        format(PlayerInfo[killerid][pKillLog1], 256, "%s", PlayerInfo[killerid][pKillLog0]);
        format(PlayerInfo[killerid][pKillLog0], 256, "(%d:%d:%d) Killed %s with %s", hour,minute,second,GetPlayerNameEx(playerid), weaponname);
        if(GetPVarInt(killerid, "IsInArena") == 0) PlayerInfo[killerid][pDMKills]++;
    }

    new string[128];
    pTazer[playerid] = 0;
    InsideShamal[playerid] = INVALID_VEHICLE_ID;
    DeletePVar(playerid, "SpeedRadar");
    DeletePVar(playerid, "UsingSprunk");
    DestroyObject(GetPVarInt(playerid, "WreckingGate"));
    DeletePVar(playerid, "WreckingGate");
    DestroyObject(GetPVarInt(playerid, "neon"));
    DestroyObject(GetPVarInt(playerid, "neon1"));
    DeletePVar(playerid, "neon0");
    DeletePVar(playerid, "neon1");
    KillTimer(GetPVarInt(playerid, "firstaid5"));
    DeletePVar(playerid, "usingfirstaid");
    if(GetPVarInt(playerid, "MovingStretcher") != -1)
    {
        KillTimer(GetPVarInt(playerid, "TickEMSMove"));
        DeletePVar(GetPVarInt(playerid, "MovingStretcher"), "OnStretcher");
        SetPVarInt(playerid, "MovingStretcher", -1);
    }

    new caller = Mobile[playerid];
    if(IsPlayerConnected(Mobile[playerid]))
    {
        SendClientMessageEx(caller,  COLOR_GRAD2, "The line went dead.");
        format(string, sizeof(string), "* %s puts away their cellphone.", GetPlayerNameEx(caller));
        ProxDetector(30.0, caller, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        CellTime[caller] = 0;
        Mobile[caller] = INVALID_PLAYER_ID;
    }
    Mobile[playerid] = INVALID_PLAYER_ID;
    CellTime[playerid] = 0;
    RingTone[playerid] = 0;

    foreach(Player, i)
    {
        if(EMSAccepted[i] < 999)
        {
            if(EMSAccepted[i] == playerid)
            {
                EMSAccepted[i] = 999;
                GameTextForPlayer(i, "~w~EMS Caller~n~~r~Has Died", 5000, 1);
                EMSCallTime[i] = 0;
                DisablePlayerCheckpoint(i);
            }
        }
    }

    if( GetPVarInt(playerid, "SpecOff" ) == 1 )
    {
        SpawnPlayer(playerid);
        return 1;
    }

    if(GetPVarInt(playerid, "Injured") == 1)
    {
        SendClientMessageEx(playerid, COLOR_WHITE, "You appear to be stuck in limbo, medics are trying to revive you.");
        KillEMSQueue(playerid);
        ResetPlayerWeaponsEx(playerid);
        //SpawnPlayer(playerid);
        return 1;
    }
    new Float:px,Float:py,Float:pz;
    if(GetPVarInt(playerid, "EventToken") == 0)
    {
        if(GetPVarInt(playerid, "IsInArena") == -1)
        {
            SetPVarInt(playerid, "Injured", 1);

            new Float:mX, Float:mY, Float:mZ;
            GetPlayerPos(playerid, mX, mY, mZ);

            SetPVarFloat(playerid, "MedicX", mX);
            SetPVarFloat(playerid, "MedicY", mY);
            SetPVarFloat(playerid, "MedicZ", mZ);
            SetPVarInt(playerid, "MedicVW", GetPlayerVirtualWorld(playerid));
            SetPVarInt(playerid, "MedicInt", GetPlayerInterior(playerid));
        }
    }
    gPlayerSpawned[playerid] = 0;
    if(GetPVarInt(playerid, "IsInArena") >= 0)
    {
        if(GetPVarInt(playerid, "AOSlotPaintballFlag") != -1)
        {
            switch(PlayerInfo[playerid][pPaintTeam])
            {
                case 1:
                {
                    DropFlagPaintballArena(playerid, GetPVarInt(playerid, "IsInArena"), 2);
                }
                case 2:
                {
                    DropFlagPaintballArena(playerid, GetPVarInt(playerid, "IsInArena"), 1);
                }
            }
        }
        if(reason >= 0 && reason <= 46)
        {
            new weapon[24];
            PlayerInfo[killerid][pKills] += 1;
            PlayerInfo[playerid][pDeaths] += 1;
            if(PlayerInfo[killerid][pPaintTeam] == 1)
            {
                if(PlayerInfo[killerid][pPaintTeam] == PlayerInfo[playerid][pPaintTeam])
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamRedKills] -= 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamBlueKills] += 1;
                    SetPlayerHealth(killerid, 0);
                    PlayerInfo[killerid][pKills] -= 2;
                    PlayerInfo[killerid][pDeaths] += 1;
                    PlayerInfo[playerid][pDeaths] -= 1;
                    SendClientMessageEx(killerid, COLOR_WHITE, "You have been warned, do not team-kill!");
                }
                else
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamRedKills] += 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamBlueDeaths] += 1;
                }
            }
            if(PlayerInfo[killerid][pPaintTeam] == 2)
            {
                if(PlayerInfo[killerid][pPaintTeam] == PlayerInfo[playerid][pPaintTeam])
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamBlueKills] -= 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamRedKills] += 1;
                    SetPlayerHealth(killerid, 0);
                    PlayerInfo[killerid][pKills] -= 2;
                    PlayerInfo[killerid][pDeaths] += 1;
                    PlayerInfo[playerid][pDeaths] -= 1;
                    SendClientMessageEx(killerid, COLOR_WHITE, "You have been warned, do not team-kill!");
                }
                PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamBlueKills] += 1;
                PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamRedDeaths] += 1;
            }
            GetWeaponName(reason,weapon,sizeof(weapon));
            if(reason == 0)
            {
                if(PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTimeLeft] < 12)
                {
                    GivePlayerCash(killerid, 1000);
                    format(string,sizeof(string),"[Paintball Arena] %s has earned $1000 bonus for a sudden death kill!",GetPlayerNameEx(killerid));
                    SendPaintballArenaMessage(GetPVarInt(killerid,"IsInArena"), COLOR_YELLOW, string);
                    SendAudioToPlayer(killerid, 19, 100, 0);
                }
                format(string,sizeof(string),"[Paintball Arena] %s has killed %s with their bare hands!",GetPlayerNameEx(killerid),GetPlayerNameEx(playerid));
            }
            else
            {
                if(PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTimeLeft] < 12)
                {
                    GivePlayerCash(killerid, 1000);
                    format(string,sizeof(string),"[Paintball Arena] %s has earned $1000 bonus for a sudden death kill!",GetPlayerNameEx(killerid));
                    SendPaintballArenaMessage(GetPVarInt(killerid,"IsInArena"), COLOR_YELLOW, string);
                    SendAudioToPlayer(killerid, 19, 100, 0);
                }
                format(string,sizeof(string),"[Paintball Arena] %s has killed %s with a %s.",GetPlayerNameEx(killerid),GetPlayerNameEx(playerid),weapon);
            }
        }
        else
        {
            PlayerInfo[playerid][pDeaths] += 1;
            format(string,sizeof(string),"[Paintball Arena] %s has died.",GetPlayerNameEx(playerid));
        }
        SendPaintballArenaMessage(GetPVarInt(playerid,"IsInArena"), COLOR_RED, string);
    }
    PlayerInfo[playerid][pLocal] = 255;
    GetPlayerPos(playerid, px, py, pz);

    if(GetPVarInt(playerid, "Injured") == 0)
    {
        if( GetPVarInt(playerid, "EventToken") >= 1 || GetPVarInt(playerid, "IsInArena") >= 0)
        {
            ResetPlayerWeapons(playerid);
        }
        else
        {
            ResetPlayerWeaponsEx(playerid);
        }
    }
    if(PlayerInfo[killerid][pAdmin] < 2)
    {
        if(reason == 49)
        {
            format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just car-parked the shit out of %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
            ABroadCast(COLOR_YELLOW, string, 2);
            print(string);

        }
        if(reason == 50)
        {
            if(IsAHelicopter(GetPlayerVehicleID(killerid)))
            {
                format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just blade-killed the shit out of %s (ID %d).", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                ABroadCast(COLOR_YELLOW, string, 2);
                print(string);
            }
            else
            {
                if(GetPlayerWeapon(killerid) != 32 || GetPlayerWeapon(killerid) != 28 || GetPlayerWeapon(killerid) != 29)
                {
                    format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just car-parked the shit out of %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                    ABroadCast(COLOR_YELLOW, string, 2);
                    print(string);
                }
                else
                {              
                    format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just driver-shot the shout of %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                    ABroadCast(COLOR_YELLOW, string, 2);
                    print(string);
                }
            }
        }
    }
    if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
        DisablePlayerCheckpoint(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
    if(HaveGPS[playerid])
    {
        KillTimer(GPSTimer[playerid]);
        HaveGPS[playerid] = false;
        GPSTimer[playerid] = 0;
    }

    ClearCrime(playerid);
    if(PlayerInfo[playerid][pHeadValue] >= 1)
    {
        if(IsPlayerConnected(killerid))
        {
            if(GoChase[killerid] == playerid)
            {
                new killer[MAX_PLAYER_NAME],
                    name[MAX_PLAYER_NAME];

                new takemoney = PlayerInfo[playerid][pHeadValue] / 4 * 2;
                name = GetPlayerNameEx(playerid);
                killer = GetPlayerNameEx(killerid);
                GivePlayerCash(killerid, takemoney);
                GivePlayerCash(playerid, -takemoney);
                format(string,128,"Hitman %s has fulfilled the contract on %s and collected $%d.",killer,name,PlayerInfo[playerid][pHeadValue] / 4 * 2);
                SendFamilyMessage(8, COLOR_YELLOW, string);
                format(string,128,"You have been critically injured by a hitman and lost $%d.",takemoney);
                ResetPlayerWeaponsEx(playerid);
                // SpawnPlayer(playerid);
                SendClientMessageEx(playerid, COLOR_YELLOW, string);
                // KillEMSQueue(playerid);
                PlayerInfo[playerid][pHeadValue] = 0;
                PlayerInfo[killerid][pCHits] += 1;
                GotHit[playerid] = 0;
                GetChased[playerid] = 999;
                GoChase[killerid] = 999;
            }
        }
    }
    if(IsPlayerConnected(killerid))
    {
        if(GoChase[playerid] == killerid)
        {
            new killer[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
            new takemoney = PlayerInfo[playerid][pHeadValue] / 4 * 2;
            GivePlayerCash(killerid, takemoney);
            name = GetPlayerNameEx(playerid);
            killer = GetPlayerNameEx(killerid);
            format(string,128,"Hitman %s has failed the contract on %s and lost $%d.",name,killer,PlayerInfo[killerid][pHeadValue] / 4 * 2);
            SendFamilyMessage(8, COLOR_YELLOW, string);
            GivePlayerCash(playerid, -takemoney);
            format(string,128,"You have just killed a hitman and gained $%d, removing the contact on your head.",PlayerInfo[killerid][pHeadValue] / 4 * 2);
            SendClientMessageEx(killerid, COLOR_YELLOW, string);
            PlayerInfo[killerid][pHeadValue] = 0;
            PlayerInfo[playerid][pFHits] += 1;
            GotHit[playerid] = 0;
            GetChased[killerid] = 999;
            GoChase[playerid] = 999;
        }
    }
    killerid = INVALID_PLAYER_ID;
    SetPlayerColor(playerid,TEAM_HIT_COLOR);
    return 1;
}
Could Someone Help me with it ?
Thanks.
Reply
#2

no its impossible
Reply
#3

i mean after he get killed ,it applies the anim "Knife Kill"
Reply
#4

You can use ApplyAnimation to apply an animation to a player; https://sampwiki.blast.hk/wiki/ApplyAnimation.
Reply
#5

pawn Код:
SetTimerEx("anim", 10000, false, "i", playerid);
ApplyAnimation(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0);
TogglePlayerControllable(playerid, 0);
Put this under the OnPlayerDeath function.
pawn Код:
forward anim(playerid);
public anim(playerid)
{
    ToggePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    return 1;
}
And this somewhere in your script.
Reply
#6

Quote:
Originally Posted by Wizz123
Посмотреть сообщение
pawn Код:
SetTimerEx("anim", 10000, false, "i", playerid);
ApplyAnimation(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0);
TogglePlayerControllable(playerid, 0);
Put this under the OnPlayerDeath function.
pawn Код:
forward anim(playerid);
public anim(playerid)
{
    ToggePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    return 1;
}
And this somewhere in your script.
Okay Thanks,But can you make it repeat the anim after like 3 seconds ?
Reply
#7

if you want it like that add,
SetTimerEx("anim", 30000, false, "i", playerid);

in public anim
Reply
#8

i mean ,when he dies it apply the anim and he can walk but after he walks for like 3 secs it repeats the anim again.
Reply
#9

pawn Код:
forward anim(playerid);
public anim(playerid) // Replace this with the old timer
{
    ToggePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    SetTimerEx("animm", 3000, false, "i", playerid);
    return 1;
}
pawn Код:
forward animm(playerid);
public animm(playerid) // and here comes the new one
{
    ApplyAnimation(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0);
    SetTimerEx("animm", 3000, false, "i", playerid);
    return 1;
}
There
Reply
#10

Quote:
Originally Posted by Wizz123
Посмотреть сообщение
pawn Код:
forward anim(playerid);
public anim(playerid) // Replace this with the old timer
{
    ToggePlayerControllable(playerid, 1);
    ClearAnimations(playerid);
    SetTimerEx("animm", 3000, false, "i", playerid);
    return 1;
}
pawn Код:
forward animm(playerid);
public animm(playerid) // and here comes the new one
{
    ApplyAnimation(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0);
    SetTimerEx("animm", 3000, false, "i", playerid);
    return 1;
}
There
Thanks man,but i meant that if he walked it repeats the anim ,not just keep repeating it even if he isnt moving ,and if i did /revive ,the anim keeps repeating
Can you help me with it ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)