Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Copyright by Nickk888/Nickk888SAMP!
- //27.04.2018
- #if !defined CAMERASHAKE
- #define CAMERASHAKE false
- #endif
- enum PlayerDeathData
- {
- bool:isdead,
- bool:isactive,
- Float:deadpos[4],
- Float:spawnpos[4],
- skinid,
- seqtimer
- };
- new DeathSeq[MAX_PLAYERS][PlayerDeathData];
- forward bool:StartDeathSequence(playerid, Float:posx, Float:posy, Float:posz, Float:rot);
- stock bool:StartDeathSequence(playerid, Float:posx, Float:posy, Float:posz, Float:rot)
- {
- if(DeathSeq[playerid][isactive])
- {
- DeathSeq[playerid][isactive] = false;
- KillTimer(DeathSeq[playerid][seqtimer]);
- #if CAMERASHAKE true
- SetPlayerDrunkLevel(playerid, 0);
- #endif
- SetPlayerHealth(playerid, 100);
- }
- if(DeathSeq[playerid][isdead])
- {
- DeathSeq[playerid][isdead] = false;
- DeathSeq[playerid][isactive] = true;
- DeathSeq[playerid][spawnpos][0] = posx;
- DeathSeq[playerid][spawnpos][1] = posy;
- DeathSeq[playerid][spawnpos][2] = posz;
- DeathSeq[playerid][spawnpos][3] = rot;
- SetPlayerPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- SetPlayerFacingAngle(playerid, DeathSeq[playerid][deadpos][3]);
- SetPlayerSkin(playerid, DeathSeq[playerid][skinid]);
- ApplyAnimation(playerid,"PED","KO_skid_back",4.1,0,1,1,1,0,1);
- SetPlayerCameraPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2] + 5);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- #if CAMERASHAKE true
- SetPlayerDrunkLevel(playerid, 6000);
- #endif
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 2000, false, "ii", playerid, 0);
- return false;
- }
- return true;
- }
- stock DeathSequenceReset(playerid)
- {
- if(DeathSeq[playerid][isactive])
- {
- DeathSeq[playerid][isactive] = false;
- DeathSeq[playerid][isdead] = false;
- KillTimer(DeathSeq[playerid][seqtimer]);
- }
- return 1;
- }
- stock DeathSequenceInitial(playerid)
- {
- DeathSeq[playerid][isdead] = true;
- DeathSeq[playerid][skinid] = GetPlayerSkin(playerid);
- GetPlayerPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- GetPlayerFacingAngle(playerid, DeathSeq[playerid][deadpos][3]);
- SetSpawnInfo(playerid, NO_TEAM, DeathSeq[playerid][skinid], DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2], DeathSeq[playerid][deadpos][3], 0, 0, 0, 0, 0, 0 );
- TogglePlayerSpectating(playerid, true);
- TogglePlayerSpectating(playerid, false);
- SetPlayerHealth(playerid, 9999);
- return 1;
- }
- forward PlayerDeathSeq(playerid, seqid);
- public PlayerDeathSeq(playerid, seqid)
- {
- #if CAMERASHAKE true
- SetPlayerDrunkLevel(playerid, 6000);
- #endif
- switch(seqid)
- {
- case 0:
- {
- SetPlayerCameraPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2] + 25);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- GameTextForPlayer(playerid, "~r~WASTED", 2000, 0);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 4000, false, "ii", playerid, 1);
- }
- case 1:
- {
- SetPlayerCameraPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2] + 80);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 800, false, "ii", playerid, 2);
- }
- case 2:
- {
- SetPlayerCameraPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2] + 150);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 800, false, "ii", playerid, 3);
- }
- case 3:
- {
- SetPlayerCameraPos(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2] + 500);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][deadpos][0], DeathSeq[playerid][deadpos][1], DeathSeq[playerid][deadpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 2000, false, "ii", playerid, 4);
- }
- case 4:
- {
- TogglePlayerControllable(playerid, false);
- SetPlayerCameraPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2] + 500);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2], CAMERA_MOVE);
- SetPlayerPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- SetPlayerFacingAngle(playerid, DeathSeq[playerid][spawnpos][3]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 6000, false, "ii", playerid, 5);
- }
- case 5:
- {
- SetPlayerPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- SetPlayerFacingAngle(playerid, DeathSeq[playerid][spawnpos][3]);
- SetPlayerCameraPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2] + 150);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 2000, false, "ii", playerid, 6);
- }
- case 6:
- {
- SetPlayerPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- SetPlayerFacingAngle(playerid, DeathSeq[playerid][spawnpos][3]);
- SetPlayerCameraPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2] + 50);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 1500, false, "ii", playerid, 7);
- }
- case 7:
- {
- SetPlayerPos(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- SetPlayerFacingAngle(playerid, DeathSeq[playerid][spawnpos][3]);
- new Float:tmppos[2];
- tmppos[0] = DeathSeq[playerid][spawnpos][0];
- tmppos[1] = DeathSeq[playerid][spawnpos][1];
- NDS_GetXYInFrontOfPoint(tmppos[0], tmppos[1], DeathSeq[playerid][spawnpos][3] + NDS_ExRandom(-45, 45), 5);
- SetPlayerCameraPos(playerid, tmppos[0], tmppos[1], DeathSeq[playerid][spawnpos][2] + 1);
- SetPlayerCameraLookAt(playerid, DeathSeq[playerid][spawnpos][0], DeathSeq[playerid][spawnpos][1], DeathSeq[playerid][spawnpos][2]);
- DeathSeq[playerid][seqtimer] = SetTimerEx("PlayerDeathSeq", 2000, false, "ii", playerid, 8);
- }
- default:
- {
- SpawnPlayer(playerid);
- #if CAMERASHAKE true
- SetPlayerDrunkLevel(playerid, 0);
- #endif
- SetPlayerHealth(playerid, 100);
- TogglePlayerControllable(playerid, true);
- DeathSeq[playerid][isactive] = false;
- }
- }
- return 1;
- }
- stock NDS_ExRandom(min, max) //By y_less
- {
- new rand = random(max-min)+min;
- return rand;
- }
- stock NDS_GetXYInFrontOfPoint(&Float:x, &Float:y, Float:angle, Float:distance)
- {
- x += (distance * floatsin(-angle, degrees));
- y += (distance * floatcos(-angle, degrees));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement