Jump to content

Melee2Gun


gardfiel

Recommended Posts

I want to turn useless melee weapons to fireable guns. But when i edit weapon.dat and turn them in to gun it doesn't shoot and i don't know cleo to make it shoot where i am aiming. I copied few codes from other scripts and made a script but when i try to shoot bullet goes to fixed rotation and sometimes i shoot myself. How can i improve this script to make it shoot where i am aiming.

 

Here is the code:

{$CLEO .cs}

//-------------MAIN---------------
thread 'M2G'
wait 1000

:M2G_1
wait 20 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @M2G_1
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1 1 2
04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0 300 0

:M2G_2 
if
02D8:   actor $PLAYER_ACTOR current_weapon == 10 
else_jump @M2G_1
if
00E1:   player 0 pressed_key 17 
else_jump @M2G_1
06BC: create_M4_shoot_from 1@ 2@ 3@ target 4@ 5@ 6@ energy 30 
018C: play_sound 1157 at 1@ 2@ 3@
jump @M2G_1

 

Link to comment
Share on other sites

Change wait 20 into wait 0

 

Offsets inside opcode 04C4 must be float, so it should look like this:

04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 1.0 2.0
04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0.0 300.0 0.0

 

Link to comment
Share on other sites

3 hours ago, In45do said:

Change wait 20 into wait 0

 

Offsets inside opcode 04C4 must be float, so it should look like this:


04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 1.0 2.0
04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0.0 300.0 0.0

 

It works but i can't shoot up or down

Link to comment
Share on other sites

You mean aim and shoot? If that the case then I recommended to use opcode 068D to determine camera position.

 

Once you get the camera position substract it with player coord. It should look like this:

04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
068D: get_camera_position_to 4@ 5@ 6@
0063: 4@ -= 1@  // float
0063: 5@ -= 2@  //float
0063: 6@ -= 3@  //float

Then multiply it with some floats. I think It's hardcoded and needs some continous testing.

Link to comment
Share on other sites

4 hours ago, Strs said:

 i can't stop my laugh 300.0 up shooting hahahahahahahah 😆

300.0 is too much but 100.0 works fine in one of my scripts that let a car shooting

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.