Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Used for throwing a road flare
- #include <YSI\y_hooks>
- forward RoadFlare(playerid);
- public RoadFlare(playerid)
- {
- if(ReadyToThrow[playerid] == THROW_TYPE_NONE)
- {
- GivePlayerWeapon(playerid, 1, 1);
- SetPlayerAttachedObject(playerid, 6, 354, 6, 0.037000, -0.034999, 0.166000, -64.199996, 0.000000, -89.499992, 1.000000, 1.000000, 1.000000);
- ReadyToThrow[playerid] = THROW_TYPE_FLARE;
- return 1;
- }
- return 0;
- }
- hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- #if defined USE_RNPC
- if(IsPlayerNPC(playerid)) return 1;
- #endif
- if(!IsPlayerInAnyVehicle(playerid))
- {
- if(ReadyToThrow[playerid] == THROW_TYPE_FLARE && newkeys & KEY_FIRE)
- {
- new Float:x, Float:y, Float:z, Float:faoffset;
- GetPlayerPos(playerid, x, y, z);
- PlayAnimation(playerid, "GRENADE", "WEAPON_throw", 4.1, 0, 0, 0, 0, 0);
- MRandFloatRange(-15.0, 15.0, faoffset);
- // Create throw frames
- new ThrowIndex = CreateThrowFrames(playerid, 15, 7.0, 4.0, 20.0, 20.0, 0.1, faoffset, x, y, z);
- // Create the throw object on frames
- CreateThrowObject(ThrowIndex, 354, x, y, z, 0.0, 0.0, 0.0);
- // Callback function
- SetThrowCallBack(ThrowIndex, "Flare");
- // Throw the flare
- SetTimerEx("ThrowFlare", 100, false, "ii", playerid, ThrowIndex);
- // Player can't throw now
- ReadyToThrow[playerid] = THROW_TYPE_NONE;
- }
- }
- return 1;
- }
- // Start throwing the flare
- forward ThrowFlare(playerid, index);
- public ThrowFlare(playerid, index)
- {
- SetTimerEx("ClearThrowAnim", 400, false, "i", playerid);
- RemovePlayerAttachedObject(playerid, 6);
- StartThrowAnim(playerid, index);
- return 1;
- }
- // Flare was thrown and landed
- OnThrown:Flare(playerid, index)
- {
- ThrowObjects[index][CurrThrowFrame]--;
- DestroyThrowObject(index);
- new tmpobj = CreateDynamicObject(354,
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ],
- 0.0, 0.0, 0.0, -1, -1, -1, 300.0);
- // Distract zombies
- DistractZombies(ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ],
- 10000);
- foreach(new i : Player)
- {
- if(IsPlayerInRangeOfPoint(i, 300.0, ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameX],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameY],
- ThrowFrames[index][ThrowObjects[index][CurrThrowFrame]][FrameZ])) Streamer_Update(i);
- }
- SetTimerEx("RemoveFlare", 536400, false, "i", tmpobj);
- }
- forward RemoveFlare(objectid);
- public RemoveFlare(objectid) { DestroyDynamicObject(objectid); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement