Wiebrendh Posted May 20, 2014 Share Posted May 20, 2014 How do i check if the player is aiming? And if the player is aiming, then run a bit of code Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 20, 2014 Share Posted May 20, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Rugz007 Posted May 21, 2014 Share Posted May 21, 2014 For gun poitn thing......i will give u some of my code Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 Your code? You mean that script stef538 wrote for you as example, that u call my code now? stef538 1 Link to comment Share on other sites More sharing options...
Rugz007 Posted May 21, 2014 Share Posted May 21, 2014 i just reffred that code and made my mode -_- Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 Well, then i am really curious about what u made of it Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 (edited) run the code once or loop code while aiming?? i usually just check if gamepad left trigger is pressed or if GameKey.Aim is pressed... u can also check animations... many ways to do it helper methods... public static bool LeftTriggerPressed()//needed for gamepad compatability{ return GTA.Native.Function.Call<bool>("IS_CONTROL_PRESSED", 0, 6);} public static bool PlayerIsArmed(){ return Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Unarmed && Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Misc_Object;} public static bool PlayerIsAiming(){ return PlayerIsArmed() && (LeftTriggerPressed() || Game.isGameKeyPressed(GameKey.Aim));} Loop the code while aiming, the when aiming part works, but it just runs one time Edited May 21, 2014 by Wiebrendh Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 21, 2014 Share Posted May 21, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 run the code once or loop code while aiming?? i usually just check if gamepad left trigger is pressed or if GameKey.Aim is pressed... u can also check animations... many ways to do it helper methods... public static bool LeftTriggerPressed()//needed for gamepad compatability{ return GTA.Native.Function.Call<bool>("IS_CONTROL_PRESSED", 0, 6);} public static bool PlayerIsArmed(){ return Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Unarmed && Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Misc_Object;} public static bool PlayerIsAiming(){ return PlayerIsArmed() && (LeftTriggerPressed() || Game.isGameKeyPressed(GameKey.Aim));} Loop the code while aiming, the when aiming part works, but it just runs one time easiest way is to use a Tick method (use the script's tick event or u can use GTA.Timer). Another way is to use a while loop (just make sure u wait(0) each loop to allow the game to process other scripts). It just depends how u want your script to work. One thing I wanted to add to the PlayerIsAiming method was to check if he is in a vehicle... public static bool PlayerIsAiming(){ return !Game.LocalPlayer.Character.isInVehicle() && PlayerIsArmed() && (LeftTriggerPressed() || Game.isGameKeyPressed(GameKey.Aim));} namespace WhileAimingNotification{ using System; using GTA; internal static class Helpers { internal static bool LeftTriggerPressed()//needed for gamepad compatability { return GTA.Native.Function.Call<bool>("IS_CONTROL_PRESSED", 0, 6); } internal static bool PlayerIsArmed() { return Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Unarmed && Game.LocalPlayer.Character.Weapons.CurrentType != Weapon.Misc_Object; } internal static bool PlayerIsAiming() { return !Game.LocalPlayer.Character.isInVehicle() && PlayerIsArmed() && (LeftTriggerPressed() || Game.isGameKeyPressed(GameKey.Aim)); } } public class Main : Script { public Main() { Tick += MainTick; } private void MainTick(object sender, EventArgs e) { if (Helpers.PlayerIsAiming()) { Game.DisplayText("Player is Aiming, and DisplayText is being called over and over...", 500); } } }} Oke, with this, when i set my interval on 1 second, and do a random int var + 1, then it will add 1 every second? Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 21, 2014 Share Posted May 21, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 i dont understand what you mean when you say... "and do a random int var + 1" if your Script's Tick event is being used for something and has an interval of 1 second then u can make another Tick event that runs faster by using a GTA.Timer. I would use a Tick with interval of 0 to check when aiming. Im not sure I answered your question though. Yep that is a very very poor description of me.. I want it to add 1 to a variable every second.. So when Niko aims at a dude at burgershot, a timer counts to 3 and after that something happens! I hop this is clearer Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 21, 2014 Share Posted May 21, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 i dont understand what you mean when you say... "and do a random int var + 1" if your Script's Tick event is being used for something and has an interval of 1 second then u can make another Tick event that runs faster by using a GTA.Timer. I would use a Tick with interval of 0 to check when aiming. Im not sure I answered your question though. Yep that is a very very poor description of me.. I want it to add 1 to a variable every second.. So when Niko aims at a dude at burgershot, a timer counts to 3 and after that something happens! I hop this is clearer ah ok... i would probably save the Game.GameTime when the player first targets a ped and as long as this ped continues to exist then keep checking time with the initial saved time and trigger code when it goes past 3 seconds... namespace PedReactsToAiming{ using System; using GTA; public class Main : Script { private Ped target; private int aimStartTime; public Main() { Tick += MainTick; } private void MainTick(object sender, EventArgs e) { Ped ped = Game.LocalPlayer.GetTargetedPed(); if (!Game.Exists(ped)) { target = null; return; } if (ped == target) { if (Game.GameTime - aimStartTime >= 3000) { Game.DisplayText("DO SOMETHING"); } } else { target = ped; aimStartTime = Game.GameTime; } } }} Oke, this looks good! But one question, what does Tick += MainTick; mean?? Link to comment Share on other sites More sharing options...
pedro2555 Posted May 21, 2014 Share Posted May 21, 2014 (edited) Tick += MainTick; mean?? ? Adds the function MainTick as a callee to the event Tick ?. Edited May 21, 2014 by pedro2555 Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 21, 2014 Share Posted May 21, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Wiebrendh Posted May 21, 2014 Author Share Posted May 21, 2014 So with Tick += MainTick; the update speeds depends on the fps? How frequent does it update? Link to comment Share on other sites More sharing options...
LordOfTheBongs Posted May 21, 2014 Share Posted May 21, 2014 (edited) ... Edited July 2, 2014 by LordOfTheBongs Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now