So when you die, i want you to do like /crack or another animation so you cant walk when you're injuried
It happens in OnPlayerDeath you freeze the player, and then you apply it animation...
Hello, first of all use the search button, secondly OnPlayerDeath get the player's X,Y,Z, save them in a variable then when the player's spawn TP the player to those X,Y,Z afterwards ApplyAnimation then TogglePlayerControllable.
So i want this animation can anyone do this for me please? ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
Код:
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");
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 Heal 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-rammed %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 %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 %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 %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;
}
I'd really appreciate if anyone helped me, and i will rep when i can do it.