public override void OnAttackTarget(Ped target) { if (((Entity)target).get_IsDead()) { if (((Entity)this._ped).IsPlayingAnim("amb@world_human_bum_wash@male@high@idle_a", "idle_b")) { return; } this._ped.get_Task().PlayAnimation("amb@world_human_bum_wash@male@high@idle_a", "idle_b", 8f, -1, (AnimationFlags)1); } else if (Database.Random.NextDouble() < 0.300000011920929 && !this._jumpAttack && !target.get_IsPerformingStealthKill() && !target.get_IsGettingUp() && !target.get_IsRagdoll()) { this._ped.Jump(); Ped ped = this._ped; Vector3 vector3 = Vector3.op_Subtraction(((Entity)target).get_Position(), this.get_Position()); double heading = (double)((Vector3) ref vector3).ToHeading(); ((Entity)ped).set_Heading((float)heading); this._jumpAttack = true; target.SetToRagdoll(2000); } else { if (((Entity)this._ped).IsPlayingAnim("rcmbarry", "bar_1_teleport_aln")) { return; } this._ped.get_Task().PlayAnimation("rcmbarry", "bar_1_teleport_aln", 8f, 1000, (AnimationFlags)16); if (!((Entity)target).get_IsInvincible()) { target.ApplyDamage(ZombiePed.ZombieDamage); } this.InfectTarget(target); } }
public override void OnAttackTarget(Ped target) { if (target.IsDead) { if (!_ped.IsPlayingAnim("amb@world_human_bum_wash@male@high@idle_a", "idle_b")) { _ped.Task.PlayAnimation("amb@world_human_bum_wash@male@high@idle_a", "idle_b", 8f, -1, GTA.AnimationFlags.Loop); } } else if (Database.Random.NextDouble() < 0.30000001192092896 && !_jumpAttack && !target.IsPerformingStealthKill && !target.IsGettingUp && !target.IsRagdoll) { _ped.Jump(); Ped ped = _ped; Vector3 val = target.Position - _ped.Position; ped.Heading = val.ToHeading(); _jumpAttack = true; target.SetToRagdoll(2000); } else if (!_ped.IsPlayingAnim("rcmbarry", "bar_1_teleport_aln")) { _ped.Task.PlayAnimation("rcmbarry", "bar_1_teleport_aln", 8f, 1000, GTA.AnimationFlags.UpperBodyOnly); if (!target.IsInvincible) { target.ApplyDamage(ZombiePed.ZombieDamage); } InfectTarget(target); } }
public static void DamagePed(Ped attacker, Ped victim, int damage, RagdollType type, int ragdollMS, Vector3 forceDirection = default(Vector3), float forceDirectionMultiplier = 1f, Vector3 forceRotation = default(Vector3), float forceRotationMultiplier = 1f) { PlayPedPainSound(victim); SetPedRagdoll(victim, ragdollMS, type); victim.ApplyDamage(damage); victim.ApplyForce(forceDirection * forceDirectionMultiplier, forceRotation * forceRotationMultiplier); Function.Call(Hash.APPLY_PED_DAMAGE_PACK, victim, "BigRunOverByVehicle", 1.0, 1.0); }
public override void OnAttackTarget(Ped target) { if (target.IsDead) { if (!_ped.IsPlayingAnim("amb@world_human_bum_wash@male@high@idle_a", "idle_b")) { _ped.Task.PlayAnimation("amb@world_human_bum_wash@male@high@idle_a", "idle_b", 8f, -1, GTA.AnimationFlags.Loop); } } else if (!_ped.IsPlayingAnim("rcmbarry", "bar_1_teleport_aln")) { _ped.Task.PlayAnimation("rcmbarry", "bar_1_teleport_aln", 8f, 1000, GTA.AnimationFlags.UpperBodyOnly); if (!target.IsInvincible) { target.ApplyDamage(ZombiePed.ZombieDamage); } InfectTarget(target); } }
public override void OnAttackTarget(Ped target) { if (((Entity)target).get_IsDead()) { if (((Entity)this._ped).IsPlayingAnim("amb@world_human_bum_wash@male@high@idle_a", "idle_b")) { return; } this._ped.get_Task().PlayAnimation("amb@world_human_bum_wash@male@high@idle_a", "idle_b", 8f, -1, (AnimationFlags)1); } else { if (((Entity)this._ped).IsPlayingAnim("rcmbarry", "bar_1_teleport_aln")) { return; } this._ped.get_Task().PlayAnimation("rcmbarry", "bar_1_teleport_aln", 8f, 1000, (AnimationFlags)16); if (!((Entity)target).get_IsInvincible()) { target.ApplyDamage(ZombiePed.ZombieDamage); } this.InfectTarget(target); } }
private void ApplyDamage(Vector3 direction, Entity entity, EntityType type, Vector3 hitCoords) { switch (type) { case EntityType.Vehicle: var veh = new Vehicle(entity.Handle); var offset = veh.GetOffsetFromWorldCoords(hitCoords); veh.SetDamage(offset, 5000f, 7000f); veh.Health -= (int)(45 * Profile.PunchDamageMultiplier); veh.ApplyForce(ForceFlags.StrongForce, Profile.LocalUser.ForwardVector * 30000f * Profile.PunchForceMultiplier, direction, 0, false, false, false); GTAGraphics.StartParticle("core", "bul_carmetal", hitCoords, Vector3.Zero, 1.0f); Audio.ReleaseSound(Audio.PlaySoundFromEntity(entity, "KNUCKLE_DUSTER_COMBAT_PED_HIT_BODY")); break; case EntityType.Ped: var ped = new Ped(entity.Handle); ped.SetToRagdoll(0); ped.Velocity = direction * 35 * Profile.PunchForceMultiplier; ped.ApplyDamage((int)(50 * Profile.PunchDamageMultiplier)); Audio.ReleaseSound(Audio.PlaySoundFromEntity(entity, "FLASHLIGHT_HIT_BODY")); break; } DamagedEntity?.Invoke(this, null, entity, hitCoords); }
public override void Update() { if (pedEntity.IsOnFire == true) { pedEntity.Kill(); } if (pedEntity.IsAlive != true || Extensions.DistanceBetween(pedEntity, Game.Player.Character) > 100) { if (pedEntity.CurrentBlip.Exists()) { pedEntity.CurrentBlip.Remove(); } } if (Population.zombieRunners && pedEntity.IsRunning) { Function.Call(Hash.STOP_PED_SPEAKING, pedEntity.Handle, 0); Function.Call(Hash.DISABLE_PED_PAIN_AUDIO, pedEntity.Handle, false); Function.Call(Hash.PLAY_PAIN, pedEntity.Handle, 8, 0, 0); Function.Call(Hash.PLAY_FACIAL_ANIM, pedEntity.Handle, "burning_1", "facials@gen_male@base"); } else { Function.Call(Hash.STOP_PED_SPEAKING, pedEntity.Handle, 1); Function.Call(Hash.DISABLE_PED_PAIN_AUDIO, pedEntity.Handle, true); } if (Function.Call <bool>(Hash.IS_AMBIENT_SPEECH_PLAYING, pedEntity.Handle)) { Function.Call(Hash.STOP_CURRENT_PLAYING_AMBIENT_SPEECH, pedEntity.Handle); } if (isRunner == true) { if (!Function.Call <bool>(Hash.HAS_ANIM_SET_LOADED, "move_m@injured")) { Function.Call(Hash.REQUEST_ANIM_SET, "move_m@injured"); } Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, pedEntity.Handle, "move_m@injured", 0x3E800000); } else { if (!Function.Call <bool>(Hash.HAS_ANIM_SET_LOADED, "move_m@drunk@verydrunk")) { Function.Call(Hash.REQUEST_ANIM_SET, "move_m@drunk@verydrunk"); } Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, pedEntity.Handle, "move_m@drunk@verydrunk", 0x3E800000); } if (target == null) { target = FindTarget(); if (target == null && newSearch == true) { pedEntity.Task.WanderAround(); newSearch = false; return; } } else { if (target.IsAlive != true || Extensions.DistanceBetween(pedEntity, target) >= 80 || target.RelationshipGroup == Relationships.ZombieGroup) { target = null; newSearch = true; target = FindTarget(); if (target == null && newSearch == true) { pedEntity.Task.WanderAround(); newSearch = false; return; } } if (target != null && (Extensions.DistanceBetween(pedEntity, target) <= 1.2) && !target.IsInVehicle()) { if (target.IsDead == true) { if (!Function.Call <bool>(Hash.IS_ENTITY_PLAYING_ANIM, pedEntity, "amb@world_human_bum_wash@male@high@idle_a", "idle_b", 3)) { pedEntity.Task.PlayAnimation("amb@world_human_bum_wash@male@high@idle_a", "idle_b", 8f, -1, GTA.AnimationFlags.Loop); Task.Delay(8); } } if (!Function.Call <bool>(Hash.IS_ENTITY_PLAYING_ANIM, pedEntity, "rcmbarry", "bar_1_teleport_aln", 3)) { Vector3 rotationTarget = pedEntity.Rotation - Game.Player.Character.Rotation; pedEntity.Rotation = rotationTarget; pedEntity.Task.PlayAnimation("rcmbarry", "bar_1_teleport_aln", 8f, 1000, (AnimationFlags)16); Task.Delay(8); if (target == Game.Player.Character) { target.ApplyDamage(50); target.Kill(); } else { target.ApplyDamage(50); int rnd = RandoMath.CachedRandom.Next(0, 2); if (rnd == 0) { Function.Call(Hash.SET_PED_TO_RAGDOLL, target.Handle, 3000, 0, 0, false, false, false); target.Weapons.Drop(); if (target.CurrentBlip.Exists()) { target.CurrentBlip.Remove(); } Population.Infect(target); target.LeaveGroup(); target.Weapons.Drop(); target = null; newSearch = true; target = FindTarget(); if (target == null && newSearch == true) { pedEntity.Task.WanderAround(); newSearch = false; return; } } else { target.Weapons.Drop(); target.Kill(); if (target.CurrentBlip.Exists()) { target.CurrentBlip.Remove(); } } } } } else { if (isRunner == true) { if (!Function.Call <bool>(Hash.HAS_ANIM_SET_LOADED, "move_m@injured")) { Function.Call(Hash.REQUEST_ANIM_SET, "move_m@injured"); } Function.Call(Hash.SET_PED_MOVEMENT_CLIPSET, pedEntity.Handle, "move_m@injured", 0x3E800000); pedEntity.Task.Climb(); Function.Call(Hash.TASK_GO_TO_ENTITY, pedEntity.Handle, target.Handle, -1, 0f, 5f, 1073741824, 0); } else { pedEntity.Task.Climb(); pedEntity.Task.GoTo(target.Position); } } } }
private void DisplayMeleeAnimation() { var currentTime = Function.Call <float>(Hash.GET_ENTITY_ANIM_CURRENT_TIME, Character, lastMeleeAnim.Split()[0], lastMeleeAnim.Split()[1]); //UpdatePlayerPedPos(); Ped PlayerChar = Game.Player.Character; if (!meleeSwingDone && CurrentWeapon != unchecked ((int)WeaponHash.Unarmed)) { var gunEntity = Function.Call <Prop>((Hash)0x3B390A939AF0B5FC, Character); if (gunEntity != null) { gunEntity.Model.GetDimensions(out Vector3 min, out Vector3 max); var start = gunEntity.GetOffsetInWorldCoords(min); var end = gunEntity.GetOffsetInWorldCoords(max); var ray = World.RaycastCapsule(start, end, (int)Math.Abs(end.X - start.X), IntersectOptions.Peds1, Character); //Function.Call(Hash.DRAW_LINE, start.X, start.Y, start.Z, end.X, end.Y, end.Z, 255, 255, 255, 255); if (ray.DidHit && ray.DidHitEntity && ray.HitEntity.Handle == PlayerChar.Handle) { LocalHandle them = new LocalHandle(Character.Handle, HandleType.GameHandle); JavascriptHook.InvokeCustomEvent(api => api.invokeonLocalPlayerMeleeHit(them, CurrentWeapon)); if (!Main.NetEntityHandler.LocalCharacter.IsInvincible) { PlayerChar.ApplyDamage(25); } meleeSwingDone = true; meleeSwingEnd = false; } } } else if (!meleeSwingDone && CurrentWeapon == unchecked ((int)WeaponHash.Unarmed)) { var rightfist = Character.GetBonePosition((int)Bone.IK_R_Hand); var start = rightfist - new Vector3(0, 0, 0.5f); var end = rightfist + new Vector3(0, 0, 0.5f); var ray = World.RaycastCapsule(start, end, (int)Math.Abs(end.X - start.X), IntersectOptions.Peds1, Character); if (ray.DidHit && ray.DidHitEntity && ray.HitEntity.Handle == PlayerChar.Handle) { LocalHandle them = new LocalHandle(Character.Handle, HandleType.GameHandle); JavascriptHook.InvokeCustomEvent(api => api.invokeonLocalPlayerMeleeHit(them, CurrentWeapon)); if (!Main.NetEntityHandler.LocalCharacter.IsInvincible) { PlayerChar.ApplyDamage(25); } meleeSwingDone = true; meleeSwingEnd = false; } } if (currentTime >= 0.95f) { lastMeleeAnim = null; meleeSwingDone = false; meleeSwingEnd = false; } if (currentTime >= meleeanimationend) { if (lastMeleeAnim != null) { Character.Task.ClearAnimation(lastMeleeAnim.Split()[0], lastMeleeAnim.Split()[1]); } lastMeleeAnim = null; meleeSwingDone = false; meleeSwingEnd = true; } }
private void tick(object sender, EventArgs e) { if (Game.CurrentInputMode == InputMode.GamePad) { // Select button if (Game.IsControlPressed(2, GTA.Control.ScriptRDown) && Mod_Menu.modActivator() == 1 && on == 0 && !keyUp) { modActivate(); keyUp = true; } if (Game.IsControlPressed(2, GTA.Control.ScriptRDown) && Mod_Menu.modActivator() == 0 && on == 1 && !keyUp) { modActivate(); keyUp = true; } if (Game.IsControlJustReleased(2, GTA.Control.ScriptRDown)) { keyUp = false; } } if (modActive) { Game.DisableControlThisFrame(2, GTA.Control.Aim); Game.DisableControlThisFrame(81, GTA.Control.Cover); Game.DisableControlThisFrame(2, GTA.Control.LookBehind); Game.DisableControlThisFrame(2, GTA.Control.Phone); if (superSpeed) { Game.Player.SetRunSpeedMultThisFrame(1.49f); } if (superJump) { Game.Player.SetSuperJumpThisFrame(); } Game.Player.Character.CanRagdoll = false; Function.Call(Hash.REMOVE_WEAPON_FROM_PED, Game.Player.Character, 0xFBAB5776); pedsToTarget = World.GetNearbyPeds(Game.Player.Character, 45f); vehicles = World.GetNearbyVehicles(Game.Player.Character.Position, 30f); vehiclesToTarget = World.GetClosestVehicle(Game.Player.Character.Position, 10f); nearbyPeds = World.GetNearbyPeds(dagger.Position, 20f); nearbyVehs = World.GetNearbyVehicles(dagger.Position, 20f); nearbyStuff = World.GetNearbyEntities(dagger.Position, 20f); UI.DrawTexture("scripts\\Dagger Files\\crosshair.png", 0, 0, 100, new Point(550, 255), new Size(185, 185), 2f, Color.Orange); if (attached == true) { UI.DrawTexture("scripts\\Dagger Files\\hooked.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); } try { // Peds foreach (Ped p in pedsToTarget) { dagger.SetNoCollision(p, true); p.SetNoCollision(dagger, true); if (Game.IsControlJustPressed(2, GTA.Control.Phone) && !keyUp) { i = 1; keyUp = true; } if (Game.IsControlJustReleased(2, GTA.Control.Phone)) { i = 0; keyUp = false; } // attach checks if (p != Game.Player.Character) { if (dagger.IsInRangeOf(p.Position, 1.5f) && !dagger.IsAttachedTo(Game.Player.Character) && p.IsAlive) { attached = true; } if (dagger.IsInRangeOf(p.Position, 1.5f) && !dagger.IsAttachedTo(Game.Player.Character) && !p.IsAlive) { attached = false; } if (dagger.IsInRangeOf(p.Position, 1.5f) && Game.IsKeyPressed(Keys.Z) || i == 1) { attached = false; } if (attached == true && Game.IsKeyPressed(Keys.Z) || i == 1) { attached = false; } } // reset ped flag if (dagger.IsAttached() && Game.IsKeyPressed(Keys.Z) || i == 1) { p.CanFlyThroughWindscreen = true; } // target ped + ped flag if (p != Game.Player.Character) { distPed = p.Position.DistanceTo(GameplayCamera.Position); comparePositionPed = GameplayCamera.Position + GameplayCamera.Direction * distPed; if (attached == false) { if (p.Position.DistanceTo(comparePositionPed) < 0.5 && p.IsAlive && !p.IsSittingInVehicle()) { World.DrawMarker(MarkerType.UpsideDownCone, (p.Position + new Vector3(0f, 0f, 1.5f)), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f), Color.White, false, false, 0, false, "", "", false); // throw anim if (Game.IsDisabledControlPressed(2, GTA.Control.Aim) && dagger.IsAttachedTo(Game.Player.Character) && !Game.Player.Character.IsGettingUp && !Game.Player.Character.IsInVehicle()) { Game.Player.Character.Task.PlayAnimation("weapons@projectile@grenade_str", "throw_m_fb_forward", 8.0f, -5.0f, 600, AnimationFlags.None, 0f); } // throw dagger if (Game.IsDisabledControlPressed(2, GTA.Control.Aim) && !Game.Player.Character.IsSittingInVehicle() && !Game.Player.Character.IsGettingUp) { dagger.Detach(); dagger.ApplyForce((p.Position - dagger.Position) * 3f); p.CanFlyThroughWindscreen = false; World.DrawMarker(MarkerType.UpsideDownCone, (p.Position + new Vector3(0f, 0f, 1.5f)), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0.2f, 0.2f, 0.2f), Color.DarkOrange, false, false, 0, false, "", "", false); } } } } // collisions if (attached == true) { p.SetNoCollision(Game.Player.Character, true); } if (Game.IsKeyPressed(Keys.Z) || Game.IsDisabledControlPressed(1, GTA.Control.Attack)) { p.SetNoCollision(Game.Player.Character, false); } // attach ped if (dagger.IsInRangeOf(p.Position, 1.5f) && !Game.IsKeyPressed(Keys.Z) && p.IsAlive && attached == true && p.CanFlyThroughWindscreen == false) { Function.Call(Hash.SET_PED_TO_RAGDOLL, p, 1000, 1000, 2); Function.Call(Hash.ATTACH_ENTITY_TO_ENTITY_PHYSICALLY, p, dagger, p.GetBoneIndex(Bone.RB_Neck_1), 0, 0f, 0f, 0.30f, 0f, 0f, 0f, 0, 0, 0, 0f, false, 0, false, false, 2); } // detach if (Game.IsKeyPressed(Keys.Z) || i == 1 && dagger.IsInRangeOf(p.Position, 1.4f) && attached == false || p.IsDead) { p.Detach(); } if (Game.IsKeyPressed(recall) && dagger.IsInRangeOf(vehCompPosFront, 10f)) { dagger.Detach(); } // recall methods if (Game.IsKeyPressed(recall) && !dagger.IsAttachedTo(Game.Player.Character)) { dagger.FreezePosition = false; dagger.Detach(); dagger.ApplyForce((dagger.Position - Game.Player.Character.Position) * -2f); } if (Game.IsKeyPressed(recall) && dagger.IsInRangeOf(Game.Player.Character.Position, 1.5f)) { dagger.AttachTo(Game.Player.Character, Game.Player.Character.GetBoneIndex(Bone.PH_R_Hand), new Vector3(0.05f, -0.02f, -0.03f), new Vector3(118f, 0f, 0f) ); } if (Game.IsControlJustPressed(2, GTA.Control.ScriptRB) && !keyUp) { r = 1; keyUp = true; } if (Game.IsControlJustReleased(2, GTA.Control.ScriptRB)) { r = 0; keyUp = false; } if (r == 1 && !dagger.IsAttachedTo(Game.Player.Character)) { dagger.FreezePosition = false; dagger.Detach(); dagger.ApplyForce((dagger.Position - Game.Player.Character.Position) * -2f); } if (r == 1 && dagger.IsInRangeOf(Game.Player.Character.Position, 1.5f)) { dagger.AttachTo(Game.Player.Character, Game.Player.Character.GetBoneIndex(Bone.PH_R_Hand), new Vector3(0.05f, -0.02f, -0.03f), new Vector3(118f, 0f, 0f) ); } // shove + 1 hit KO if (Game.Player.Character.IsTouching(p)) { p.ApplyForce(p.Position - Game.Player.Character.Position); } if (Game.Player.Character.IsInMeleeCombat) { Ped a = Game.Player.Character.GetMeleeTarget(); if (a.HasBeenDamagedBy(Game.Player.Character)) { a.ApplyDamage(300); } } // power selections if (powerMode < -1 || powerMode > 5) { powerMode = 0; } if (powerMode == -1) { powerMode = 5; } if (Game.IsKeyPressed(powerModeDown) && !keyUp) { keyUp = true; powerMode--; } if (Game.IsKeyPressed(powerModeUp) && !keyUp) { keyUp = true; powerMode++; } if (Game.CurrentInputMode == InputMode.GamePad) { if (Game.IsControlJustPressed(2, GTA.Control.ScriptPadRight) && !keyUp) { keyUp = true; powerMode++; } if (Game.IsControlJustReleased(2, GTA.Control.ScriptPadRight)) { keyUp = false; } if (Game.IsControlJustPressed(2, GTA.Control.ScriptPadLeft) && !keyUp) { keyUp = true; powerMode--; } if (Game.IsControlJustReleased(2, GTA.Control.ScriptPadLeft)) { keyUp = false; } } // passive if (Game.IsKeyPressed(passive) && !keyUp) { keyUp = true; passiveOn = !passiveOn; } if (Game.IsControlJustPressed(2, GTA.Control.LookBehind) && !keyUp) { keyUp = true; passiveOn = !passiveOn; } if (Game.IsControlJustReleased(2, GTA.Control.LookBehind)) { keyUp = false; } if (passiveOn) { UI.DrawTexture("scripts\\Dagger Files\\magazine.png", 0, 0, 100, new Point(285, 650), new Size(25, 25), 2f, Color.White); if (p.IsInCombatAgainst(Game.Player.Character)) { p.Weapons.Current.Ammo = 0; p.Weapons.Current.AmmoInClip = 0; } } // kill if (powerMode == 0) { UI.DrawTexture("scripts\\Dagger Files\\skull.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); if (dagger.IsInRangeOf(p.Position, 1.5f) && attached == true) { Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { p.Kill(); attached = false; } } } // attach to objects if (powerMode == 1) { UI.DrawTexture("scripts\\Dagger Files\\attach.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); if (dagger.IsInRangeOf(p.Position, 1.5f) && dagger.IsInRangeOf(Game.Player.Character.Position, 1.5f) && attached == true) { Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { dagger.Detach(); dagger.FreezePosition = true; // Left door if (Game.Player.Character.IsInRangeOf(vehCompPosLeft, 1.5f)) { dagger.AttachTo(vehiclesToTarget, vehiclesToTarget.GetBoneIndex("handle_dside_f"), new Vector3(0, 0, 0), new Vector3(0, -90, 0) ); } // Right door if (Game.Player.Character.IsInRangeOf(vehCompPosRight, 1.5f)) { dagger.AttachTo(vehiclesToTarget, vehiclesToTarget.GetBoneIndex("handle_pside_f"), new Vector3(0, 0, 0), new Vector3(0, 90, 0) ); } // Front if (Game.Player.Character.IsInRangeOf(vehCompPosFront, 1.5f)) { dagger.AttachTo(vehiclesToTarget, vehiclesToTarget.GetBoneIndex("bonnet"), new Vector3(0, 1, 0), new Vector3(0, 0, 0) ); } // Back if (Game.Player.Character.IsInRangeOf(vehCompPosBack, 1.5f)) { dagger.AttachTo(vehiclesToTarget, vehiclesToTarget.GetBoneIndex("boot"), new Vector3(0, -0.5f, 0), new Vector3(0, 0, 0) ); } } } } else { dagger.FreezePosition = false; } // throw if (powerMode == 2) { UI.DrawTexture("scripts\\Dagger Files\\throw.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); if (dagger.IsInRangeOf(p.Position, 1.5f) && dagger.IsInRangeOf(Game.Player.Character.Position, 1.5f) && attached == true) { Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { Game.Player.Character.Task.PlayAnimation("weapons@projectile@grenade_str", "throw_m_fb_forward", 8.0f, -5.0f, 600, AnimationFlags.None, 0f); p.Detach(); attached = false; p.ApplyForce(Vector3.RelativeTop * 25 + GameplayCamera.Direction * 35); } } } // lightning if (powerMode == 3) { UI.DrawTexture("scripts\\Dagger Files\\lightning.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { foreach (Ped x in nearbyPeds) { if (x.IsAlive && x != Game.Player.Character) { World.ShootBullet(dagger.Position, x.Position, Game.Player.Character, "WEAPON_STUNGUN", 1, 10); if (x.IsBeingStunned) { if (Function.Call <bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "core")) { Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "core"); Function.Call <int>(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "sp_foundry_sparks", x, 0, 0, 0.06, 90f, 0, 0, 0.05f, 0, 0, 0); } else { Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "core"); } } } } foreach (Vehicle v in nearbyVehs) { if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { if (v.IsAlive) { v.StartAlarm(); v.ApplyForce(Vector3.WorldDown * 0.1f); v.EngineRunning = false; if (Function.Call <bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "core")) { Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "core"); Function.Call <int>(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "sp_foundry_sparks", v, 0, 0, 0.06, 90f, 0, 0, 0.05f, 0, 0, 0); } else { Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "core"); } } } } } } // drop and or flee if (powerMode == 4) { UI.DrawTexture("scripts\\Dagger Files\\flee.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { foreach (Ped z in nearbyPeds) { if (z != Game.Player.Character) { z.Weapons.Drop(); z.Task.ReactAndFlee(Game.Player.Character); } } } } // nuke if (powerMode == 5) { UI.DrawTexture("scripts\\Dagger Files\\nuke.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { foreach (Ped x in nearbyPeds) { if (x != Game.Player.Character && x.IsAlive) { World.AddExplosion(x.Position, ExplosionType.Grenade, 2f, 0f); } } foreach (Vehicle v in nearbyVehs) { if (v.IsAlive) { World.AddExplosion(v.Position, ExplosionType.Grenade, 2f, 0f); } } foreach (Entity q in nearbyStuff) { if (q != Game.Player.Character) { q.ApplyForce(q.Position - dagger.Position); } } } } } // Vehicle target foreach (Vehicle v in vehicles) { vehCompPosFront = v.GetOffsetInWorldCoords(Vector3.RelativeFront * v.Model.GetDimensions().Y * 0.4f); distFront = vehCompPosFront.DistanceTo(GameplayCamera.Position); comparePositionFront = GameplayCamera.Position + GameplayCamera.Direction * distFront; vehCompPosBack = v.GetOffsetInWorldCoords(Vector3.RelativeBack * v.Model.GetDimensions().Y * 0.4f); distBack = vehCompPosBack.DistanceTo(GameplayCamera.Position); comparePositionBack = GameplayCamera.Position + GameplayCamera.Direction * distBack; vehCompPosLeft = v.GetOffsetInWorldCoords(Vector3.RelativeLeft * v.Model.GetDimensions().X * 0.4f); distLeft = vehCompPosLeft.DistanceTo(GameplayCamera.Position); comparePositionLeft = GameplayCamera.Position + GameplayCamera.Direction * distLeft; vehCompPosRight = v.GetOffsetInWorldCoords(Vector3.RelativeRight * v.Model.GetDimensions().X * 0.4f); distRight = vehCompPosRight.DistanceTo(GameplayCamera.Position); comparePositionRight = GameplayCamera.Position + GameplayCamera.Direction * distRight; distCenter = v.Position.DistanceTo(GameplayCamera.Position); comparePositionCenter = GameplayCamera.Position + GameplayCamera.Direction * distCenter; if (vehCompPosFront.DistanceTo(comparePositionFront) < 0.5 && v.IsAlive || vehCompPosBack.DistanceTo(comparePositionBack) < 0.5 && v.IsAlive || vehCompPosLeft.DistanceTo(comparePositionLeft) < 0.5 && v.IsAlive || vehCompPosRight.DistanceTo(comparePositionRight) < 0.5 && v.IsAlive || v.Position.DistanceTo(comparePositionCenter) < 0.5 && v.IsAlive) { // throw anim if (Game.IsDisabledControlPressed(2, GTA.Control.Aim) && dagger.IsAttachedTo(Game.Player.Character) && !Game.Player.Character.IsGettingUp && !Game.Player.Character.IsInVehicle()) { Game.Player.Character.Task.PlayAnimation("weapons@projectile@grenade_str", "throw_m_fb_forward", 8.0f, -5.0f, 600, AnimationFlags.None, 0f); } // target vehicle if (Game.IsDisabledControlPressed(2, GTA.Control.Aim)) { dagger.Detach(); dagger.ApplyForce((v.Position - dagger.Position) * 3f); if (dagger.IsInRangeOf(v.Position, 3f)) { dagger.AttachTo(v, v.GetBoneIndex("engine"), new Vector3(0, 0.5f, 0.6f), new Vector3(0, -180, 0) ); } if (!dagger.IsAttachedTo(v)) { World.DrawMarker(MarkerType.UpsideDownCone, (v.Position + new Vector3(0f, 0f, 2f)), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.4f, 0.4f, 0.4f), Color.Orange, false, false, 0, false, "", "", false); } } else { World.DrawMarker(MarkerType.UpsideDownCone, (v.Position + new Vector3(0f, 0f, 2f)), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.4f, 0.4f, 0.4f), Color.White, false, false, 0, false, "", "", false); } } // amplified powers (on vehs) if (dagger.IsAttachedTo(v)) { UI.DrawTexture("scripts\\Dagger Files\\amplified.png", 0, 0, 100, new Point(200, 600), new Size(130, 100), 2f, Color.White); // kill if (powerMode == 0) { Ped p = v.GetPedOnSeat(VehicleSeat.Passenger); Ped w = v.GetPedOnSeat(VehicleSeat.LeftRear); Ped r = v.GetPedOnSeat(VehicleSeat.RightRear); if (v.Driver.IsAlive || p.IsAlive || w.IsAlive || r.IsAlive) { Game.DisableControlThisFrame(1, GTA.Control.Attack); } if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { v.Driver.Kill(); p.Kill(); w.Kill(); r.Kill(); v.SmashWindow(VehicleWindow.BackLeftWindow); v.SmashWindow(VehicleWindow.BackRightWindow); v.SmashWindow(VehicleWindow.FrontLeftWindow); v.SmashWindow(VehicleWindow.FrontRightWindow); } } // throw if (powerMode == 2) { Game.DisableControlThisFrame(1, GTA.Control.Attack); if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { v.ApplyForce(GameplayCamera.Direction * 20f); } } // lightning if (powerMode == 3) { if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { v.EngineHealth = -10; v.LightsOn = true; v.OpenDoor(VehicleDoor.FrontLeftDoor, true, false); v.OpenDoor(VehicleDoor.BackLeftDoor, true, false); v.OpenDoor(VehicleDoor.FrontRightDoor, true, false); v.OpenDoor(VehicleDoor.BackRightDoor, true, false); } } // flee if (powerMode == 4) { if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { if (!v.IsTireBurst(0) & !v.IsTireBurst(1) & !v.IsTireBurst(2) & !v.IsTireBurst(3) & !v.IsTireBurst(4) & !v.IsTireBurst(5) & !v.IsTireBurst(6) & !v.IsTireBurst(7)) { v.BurstTire(0); v.BurstTire(1); v.BurstTire(2); v.BurstTire(3); v.BurstTire(4); v.BurstTire(5); v.BurstTire(6); v.BurstTire(7); } v.SmashWindow(VehicleWindow.BackLeftWindow); v.SmashWindow(VehicleWindow.BackRightWindow); v.SmashWindow(VehicleWindow.FrontLeftWindow); v.SmashWindow(VehicleWindow.FrontRightWindow); v.BreakDoor(VehicleDoor.BackLeftDoor); v.BreakDoor(VehicleDoor.FrontLeftDoor); v.BreakDoor(VehicleDoor.BackRightDoor); v.BreakDoor(VehicleDoor.FrontRightDoor); v.BreakDoor(VehicleDoor.Hood); v.BreakDoor(VehicleDoor.Trunk); } } } } } catch (Exception f**k) { } // ptfx (on dagger) if (powerMode == 3 & Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { if (Function.Call <bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "core")) { Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "core"); Function.Call <int>(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "sp_foundry_sparks", dagger, 0, 0, 0.06, 90f, 0, 0, 0.05f, 0, 0, 0); } else { Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "core"); } } if (powerMode == 5 & Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { if (Function.Call <bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "core")) { Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "core"); Function.Call <int>(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "exp_grd_boat_lod", dagger, 0, 0, 0.06, 0f, 0f, 0, 0.6f, 0, 0, 0); } else { Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "core"); } } if (powerMode == 4 & Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { if (Function.Call <bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "scr_carsteal4")) { Function.Call(Hash._SET_PTFX_ASSET_NEXT_CALL, "scr_carsteal4"); Function.Call(Hash.SET_PARTICLE_FX_NON_LOOPED_COLOUR, 255.0f, 0, 0); Function.Call <int>(Hash.START_PARTICLE_FX_NON_LOOPED_ON_ENTITY, "scr_carsteal4_wheel_burnout", dagger, 0, 0, 2f, 0f, 0f, 0, 2f, 0, 0, 0); } else { Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "scr_carsteal4"); } } // sounds if (Game.IsDisabledControlJustPressed(1, GTA.Control.Attack)) { // kill if (powerMode == 0) { NAudio.Wave.WaveFileReader neck = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\neck.wav"); NAudio.Wave.WaveChannel32 waveAt = new NAudio.Wave.WaveChannel32(neck); NAudio.Wave.DirectSoundOut output = new NAudio.Wave.DirectSoundOut(); output.Init(waveAt); output.Play(); waveAt.Volume = 0.30f; } // attach if (powerMode == 1) { NAudio.Wave.WaveFileReader attach = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\attach.wav"); NAudio.Wave.WaveChannel32 waveAt3 = new NAudio.Wave.WaveChannel32(attach); NAudio.Wave.DirectSoundOut output2 = new NAudio.Wave.DirectSoundOut(); output2.Init(waveAt3); output2.Play(); waveAt3.Volume = 0.30f; } // throw if (powerMode == 2) { NAudio.Wave.WaveFileReader throww = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\throw.wav"); NAudio.Wave.WaveChannel32 waveAt3 = new NAudio.Wave.WaveChannel32(throww); NAudio.Wave.DirectSoundOut output3 = new NAudio.Wave.DirectSoundOut(); output3.Init(waveAt3); output3.Play(); waveAt3.Volume = 0.30f; } // lightning if (powerMode == 3) { NAudio.Wave.WaveFileReader lightning = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\lightning.wav"); NAudio.Wave.WaveChannel32 waveAt4 = new NAudio.Wave.WaveChannel32(lightning); NAudio.Wave.DirectSoundOut output4 = new NAudio.Wave.DirectSoundOut(); output4.Init(waveAt4); output4.Play(); waveAt4.Volume = 1f; } // flee if (powerMode == 4) { NAudio.Wave.WaveFileReader flee = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\flee.wav"); NAudio.Wave.WaveChannel32 waveAt5 = new NAudio.Wave.WaveChannel32(flee); NAudio.Wave.DirectSoundOut output5 = new NAudio.Wave.DirectSoundOut(); output5.Init(waveAt5); output5.Play(); waveAt5.Volume = 0.30f; } //nuke if (powerMode == 5) { NAudio.Wave.WaveFileReader nuke = new NAudio.Wave.WaveFileReader(@"scripts\Dagger Files\nuke.wav"); NAudio.Wave.WaveChannel32 waveAt5 = new NAudio.Wave.WaveChannel32(nuke); NAudio.Wave.DirectSoundOut output5 = new NAudio.Wave.DirectSoundOut(); output5.Init(waveAt5); output5.Play(); waveAt5.Volume = 0.10f; } } } else { Game.Player.SetRunSpeedMultThisFrame(1.0f); } }