icecube3456 Posted May 11, 2013 Share Posted May 11, 2013 if (Keys.Q == e.Key){ Vector3 player = Player.Character.Position; float intensity = 10.0f; float range = 10.0f; DrawLight(player.X, player.Y, player.Z, 255, 255, 255, intensity, range);}private void DrawLight(float x, float y, float z, int r, int g, int b, float intensity, float range){ GTA.Native.Function.Call("NATIVE_DRAW_LIGHT_WITH_RANGE", x, y, z, r, g, b, intensity, range);} I use this code, but no light is created. I also get no errors. Link to comment Share on other sites More sharing options...
motorsport71 Posted May 11, 2013 Share Posted May 11, 2013 (edited) you are going to need to declare the xyz vectors for your players position independently, not as a single vector3 "player.character.position". Try using: Player.Character.Position.XPlayer.Character.Position.YPlayer.Character.Position.Z or if you want to set a place for the light to stay permanently, say in front of a door, you can place a permanent set of x,y,and z coordinates. Also, the light will not "stay on." It will only last as long as you hold the key OR you keep it on a tick without any type of timer / delay or it will only pop on for only one ms. Also, the R, G, B are all used to alter the color of the light. Native.Function.Call("DRAW_LIGHT_WITH_RANGE", 459.51, 323.2, 8.57, 250, 0, 10, 20.0F, 95.0F) this one makes a tombstone in the graveyard in the middle of the map glow bright red when left to run continuously, used it in my Jenny's Soul mission/Mod. Here is a link to a pic if you want:Jenny's Soul Edited May 11, 2013 by motorsport71 Link to comment Share on other sites More sharing options...
Nevitro Posted May 11, 2013 Share Posted May 11, 2013 (edited) Man... Vector3 got X,Y and Z. Vector3 player = Player.Character.Position; This is GOOD. For icetube: on top of file add using System.Drawing; Also, why You use function to call native function? ;o This is not good. Also, you use "player.X", THIS IS BAD - WARNING!!! Do not name variables like in dll! Example: Vector3 myPlayer = Player.Character.Position; - that is ok Vector3 player = Player.Character.Position; - NOT OKEY!!! Why? Because in instructions for ScriptHook You will see, player is reseved to some functions. [if he is local etc] So, change "player" to "myPlayer" and do not make next function, just call native function: GTA.Native.Function.Call("DRAW_LIGHT_WITH_RANGE", myPlayer.X, myPlayer.Y, myPlayer.Z, 255, 255, 255, 10.0F, 10.0F); Mayby change small 'f' to big 'F', because in C# small and big letter have difference. At the end You must remeber to call EVERY DRAWING OPTION in: ...// in public in scriptthis.PerFrameDrawing += new GraphicsEventHandler(this.BodyMenu);...private void BodyMenu(object sender, GraphicsEventArgs abc){// draw draw draw} Edited May 11, 2013 by Nevitro 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