Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

*DO NOT* SHARE MEDIA OR LINKS TO LEAKED COPYRIGHTED MATERIAL. Discussion is allowed.

Laser sight ?


xana
 Share

Recommended Posts

Can we replace the aim cross, by a laser ? Like Resident evil 4 & 5 game ?

 

Not just a red, green, or any colour point, a real laser ^^

Something like this :

 

user posted image

 

Without aim cross, of course wink.gif

 

Thanks !

Link to comment
Share on other sites

the laser can be done with the model

i downloaded an M4 with a laser once....

i think it was on gtainside

as well as another 100000000 models...wish you good luck finding it tounge.gif

Link to comment
Share on other sites

I had it, long time ago...

But it's not really what I want, because the laser don't " touch " the target, it pass trought confused.gif

Link to comment
Share on other sites

Weeser was working on a laser mod RE4 style. You did not see the laser trail, but the dot did collide with objects, and was interesting.

 

Not sure if he finished it.

 

Here is an old video:

http://www.xfire.com/video/1be6c8/

 

The aiming is kinda off, but Wesser fixed it.

Yl8KS.jpg
Link to comment
Share on other sites

  • 2 weeks later...

After playing a bit with IDA, I figured out a quick way to avoid some iterations by using game routines. Here is the code:

 

{ FUNCTIONS INCLUDED:-   getAimPoint     Type: GET       Description: Get the point where player is looking/aiming at.-   getLaserPoint     Type: GET       Description: Get laser point between 2 points.-   getIntPoint     Type: GET       Description: Get the intersection between 2 points.-   getActorBonePos     Type: GET       Description: Get the XYZ coords of a ped's bone.-   getLocalVarOffset     Type: GET       Description: Get local var offset from thread pointer.}{$CLEO}0000: NOP0A8C: write_memory 0xC1704C size 1 value 105 virtual_protect 0 // 60fps// Disable crosshair0A8C: write_memory 0x58FBBF size 4 value 0x90909090 virtual_protect 1 0A8C: write_memory 0x58FBC3 size 1 value 0x90 virtual_protect 1 while true wait 0  0470: [email protected] = actor $PLAYER_ACTOR current_weapon [email protected] *= 0x70  [email protected] += 0xC8AAB8  [email protected] += 0x8  0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // weapon range 00A0: store_actor $PLAYER_ACTOR position_to [email protected] [email protected] [email protected]  0AB1: call_scm_func @getAimPoint 4 range [email protected] from [email protected] [email protected] [email protected] camera_to [email protected] [email protected] [email protected] point_to [email protected] [email protected] [email protected]  0AB1: call_scm_func @getLaserPoint 6 from [email protected] [email protected] [email protected] to [email protected] [email protected] [email protected] store_to [email protected] [email protected] [email protected]  04D5: create_corona_at [email protected] [email protected] [email protected] radius 0.05 type 0 flare 0 RGB 255 0 0 end:getAimPoint{ Parameters:   Passed:     [email protected] - aiming range     [email protected] - start point X     [email protected] - start point Y     [email protected] - start point Z   Result:     [email protected] - camera point X     [email protected] - camera point Y     [email protected] - camera point Z     [email protected] - aim point X     [email protected] - aim point Y     [email protected] - aim point Z Example:   0AB1: call_scm_func @getAimPoint 4 range 20.0 from 0.0 0.0 0.0 camera_to [email protected] [email protected] [email protected] point_to [email protected] [email protected] [email protected] }0A9F: [email protected] = current_thread_pointer0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 4 store_to [email protected] 0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 7 store_to [email protected] 0AA6: call_method 0x514970 struct 0xB6F028 num_params 6 pop 0 pPoint [email protected] pCamera [email protected] fZ [email protected] fY [email protected] fX [email protected] fRange [email protected] 0AB2: ret 6 [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] :getLaserPoint{ Parameters:   Passed:     [email protected] - start point X     [email protected] - start point Y     [email protected] - start point Z     [email protected] - end point X     [email protected] - end point Y     [email protected] - end point Z   Result:     [email protected] - middle point X     [email protected] - middle point Y     [email protected] - middle point Z Example:   0AB1: call_scm_func @getLaserPoint 6 from 0.0 0.0 0.0 to 1.0 0.0 0.0 store_to [email protected] [email protected] [email protected] }0A96: [email protected] = actor $PLAYER_ACTOR struct0AB1: call_scm_func @getIntPoint 12 from [email protected] [email protected] [email protected] to [email protected] [email protected] [email protected] solid 1 car 1 actor 1 object 1 particle 0 ignore_entity [email protected] store_to [email protected] [email protected] [email protected] distance_to [email protected] 0AB1: call_scm_func @getActorBonePos 2 actor $PLAYER_ACTOR bone 25 store_to [email protected] [email protected] [email protected] if 06BD:  no_obstacles_between [email protected] [email protected] [email protected] and [email protected] [email protected] [email protected] solid 1 car 1 actor 1 object 1 particle 0 then 0087: [email protected] = [email protected]  0087: [email protected] = [email protected]  0087: [email protected] = [email protected] end0AB2: ret 3 [email protected] [email protected] [email protected] :getIntPoint{ Parameters:   Passed:     [email protected] - start point X     [email protected] - start point Y     [email protected] - start point Z     [email protected] - end point X     [email protected] - end point Y     [email protected] - end point Z     [email protected] - is solid     [email protected] - is car     [email protected] - is actor     [email protected] - is object     [email protected] - is particle     [email protected] - entity to ignore (offset)   Result:     [email protected] - middle point X     [email protected] - middle point Y     [email protected] - middle point Z     [email protected] - distance Example:   0AB1: call_scm_func @getIntPoint 12 from 0.0 0.0 0.0 to 1.0 0.0 0.0 solid 1 car 0 actor 0 object 0 particle 0 ignore_entity 0x0 store_to [email protected] [email protected] [email protected] distance_to [email protected] }if  [email protected] <> 0x0 then 0A8C: write_memory 0xB7CD68 size 4 value [email protected] virtual_protect 0 end0A9F: [email protected] = current_thread_pointer0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 0 store_to [email protected] // from => [email protected]@0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 3 store_to [email protected] // to => [email protected]@0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 12 store_to [email protected] // out => [email protected]@0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 15 store_to [email protected] // out => [email protected]: call_function 0x56BA00 num_params 12 pop 12 bIgnoreShootThroughStuff 0 bIgnoreSomeObjectsForCamera 0 bIgnoreSeeThroughStuff 0 bDummies [email protected] bObject [email protected] bActor [email protected] bCar [email protected] bBuilding [email protected] fDistance [email protected] pPoint [email protected] pTarget [email protected] pOrigin [email protected] bReturn [email protected] if  [email protected] <> 0x0 then 0A8C: write_memory 0xB7CD68 size 4 value 0 virtual_protect 0 end0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 21 store_to [email protected] // out => [email protected]@if  [email protected] <> 0 then if and   [email protected] <> 0.0    [email protected] <> 0.0    [email protected] <> 0.0  then   050A: [email protected] = distance_between_XYZ [email protected] [email protected] [email protected] and_XYZ [email protected] [email protected] [email protected]  endelse [email protected] = 0.0 end0AB2: ret 4 [email protected] [email protected] [email protected] [email protected] :getActorBonePos{ Parameters:   Passed:     [email protected] - actor     [email protected] - bone number   Result:     [email protected] - bone point X     [email protected] - bone point Y     [email protected] - bone point Z Example:   0AB1: call_scm_func @getActorBonePos 2 actor [email protected] bone 0 store_to [email protected] [email protected] [email protected]  Values:   http://www.google.com/codesearch/p?hl=it#KdIewVX4zdg/trunk/MTA10/sdk/game/CPed.h&q=eBone%20package:http://mtasa-blue%5C.googlecode%5C.com&sa=N&cd=1&ct=rc&l=43}0A96: [email protected] = actor [email protected] struct0A9F: [email protected] = current_thread_pointer0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 2 store_to [email protected] 0AA6: call_method 0x5E4280 struct [email protected] num_params 3 pop 0 bUnk 1 nBone [email protected] pPoint [email protected] 0AB2: ret 3 [email protected] [email protected] [email protected] :getLocalVarOffset{ Parameters:   Passed:     [email protected] - thread pointer     [email protected] - var number   Result:     [email protected] - var value Example:   0AB1: call_scm_func @getLocalVarOffset 2 thread [email protected] var 0 store_to [email protected] }if  [email protected] <> 0 then [email protected] *= 0x4  0A8E: [email protected] = [email protected] + 0xDC // mission flag if    [email protected] == 1  then   [email protected] += 0xA48960 // mission locals else   005A: [email protected] += [email protected]    [email protected] += 0x3C  endelse [email protected] = 0 end0AB2: ret 1 [email protected] 

 

I guess it works as your preferences.

012          345
678   9A   BCD
EFG HIJK LMN
OPQR  STUV
WX    YZ

Link to comment
Share on other sites

Actually my reaction was like

 

user posted image

 

He wrote a Cleo using real programming structure. Someone new to Programming could think thats written in C#

And just the other day I was wondering how to work like this in coding, using Functions or Procedures and Calling them.

 

Its a beautiful script.

Yl8KS.jpg
Link to comment
Share on other sites

Well the script itself is indeed a beauty and like his walkstyle changer and the snippet for writting coords into a file I realy appreciate the structure and also the way the functions are used.

 

In game the script looks just realy cool (beside the dot is there always) and owning peope with a aser sight almost doubles the fun biggrin.gif

 

 

Someone new to Programming could think thats written in C#

 

ehh? dontgetit.gif

 

 

Its a beautiful script.

 

Indeed icon14.gif

 

btw, Wesser: hows your progress on your SDK? monocle.gif

Link to comment
Share on other sites

  • 2 weeks later...

coin-god, you've propably exceded a bit. At present, none of the known programming languages has this pre-defined structure. You'd rather say it's similar but nobody will be confused after learning it. tounge2.gif

 

The_Siggi, I'm still working to put my website online so I've just stopped working on those SDK. smile.gif

012          345
678   9A   BCD
EFG HIJK LMN
OPQR  STUV
WX    YZ

Link to comment
Share on other sites

Excellent script, Wesser. I wanna use your methods for future scripts, if you confirm (please reply),

for scripts of Project Fantsia to get the aiming target point and throw objects as well as the script in the current version and add a Lasersight effect

 

Link to comment
Share on other sites

Sure, I love those new effects since I can't realize the way they could be done.

012          345
678   9A   BCD
EFG HIJK LMN
OPQR  STUV
WX    YZ

Link to comment
Share on other sites

Nice find on that bone position function. Much easier than calling all those other functions manually.

 

I'm wondering if you know of any similar methods for vehicles? Knowing the exact position of vehicle components seems very useful. I've been doing some research into components recently (amongst other things).

 

Anyway.. this page is annoyingly wide, so I'll come back to check out the script later tounge.gif

Link to comment
Share on other sites

 

Sure, I love those new effects since I can't realize the way they could be done.

thanks smile.gif

the effects.fxp is data to define effects and allocate settings, mostly to show alpha textures of effectPC.txd and move them, rotate, grow or decrease them, can have time steps

the result must be executed from exe or maybe allocated to a directx enviroment?

i can only modify a little bit, change size and colors, making textures is difficult because you mostly see the border of the picture

Function-X- is an expert, i'm wondering how he can do it

Edited by ZAZ
Link to comment
Share on other sites

  • 3 months later...
EUX adamant4

I have made a script based off Wesser's that does add a beam (just for educational purposes). Unfortunately the only thing that works properly is using searchlights, as Adler mentioned above tounge.gif

 

It works pretty well, and has taught me how to make my own functions lol- It still has a few rough edges to be smoothed out, like the beam not coming from the gun, but other than that its perfect (apart from the beam being white sad.gif )

Link to comment
Share on other sites

  • 5 months later...

Excuse me, how do I manage to adjust the corona's position as I desire? (eg; I want to put the corona at the middle, not at the upper-right of the screen)

Link to comment
Share on other sites

  • 10 years later...

Wessers script recreated in new forums code block

{
 FUNCTIONS INCLUDED:

-   getAimPoint
     Type: GET
       Description: Get the point where player is looking/aiming at.

-   getLaserPoint
     Type: GET
       Description: Get laser point between 2 points.

-   getCollisionBetweenPoints
     Type: GET
       Description: Get the collision point coords between 2 points.

-   getLocalVarOffset
     Type: GET
       Description: Get local var offset from thread pointer.
}

{$CLEO}

0000: NOP

0A8C: write_memory 0xC1704C size 1 value 105 virtual_protect 0 // 60fps

// Disable crosshair
0A8C: write_memory 0x58FBBF size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x58FBC3 size 1 value 0x90 virtual_protect 1

while true
 wait 0
 0470: 0@ = actor $PLAYER_ACTOR current_weapon
 0@ *= 0x70
 0@ += 0xC8AAB8
 0@ += 0x8
 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // weapon range
 00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
 0AB1: call_scm_func @getAimPoint 4 range 0@ from 1@ 2@ 3@ camera_to 4@ 5@ 6@ point_to 7@ 8@ 9@
 0AB1: call_scm_func @getLaserPoint 6 from 4@ 5@ 6@ to 7@ 8@ 9@ store_to 10@ 11@ 12@
 04D5: create_corona_at 10@ 11@ 12@ radius 0.05 type 0 flare 0 RGB 255 0 0
end

:getAimPoint
{
 Parameters:
   Passed:
     0@ - aiming range
     1@ - start point X
     2@ - start point Y
     3@ - start point Z
   Result:
     4@ - camera point X
     5@ - camera point Y
     6@ - camera point Z
     7@ - aim point X
     8@ - aim point Y
     9@ - aim point Z

 Example:
   0AB1: call_scm_func @getAimPoint 4 range 20.0 from 0.0 0.0 0.0 camera_to 1@ 2@ 3@ point_to 4@ 5@ 6@
}
0A9F: 12@ = current_thread_pointer
0AB1: call_scm_func @getLocalVarOffset 2 thread 12@ var 4 store_to 10@
0AB1: call_scm_func @getLocalVarOffset 2 thread 12@ var 7 store_to 11@
0AA6: call_method 0x514970 struct 0xB6F028 num_params 6 pop 0 pPoint 11@ pCamera 10@ fOriginZ 3@ fOriginY 2@ fOriginX 1@ fRange 0@ // CCamera__Find3rdPersonCamTargetVector
0AB2: ret 6 4@ 5@ 6@ 7@ 8@ 9@

:getLaserPoint
{
 Parameters:
   Passed:
     0@ - start point X
     1@ - start point Y
     2@ - start point Z
     3@ - end point X
     4@ - end point Y
     5@ - end point Z
   Result:
     6@ - middle point X
     7@ - middle point Y
     8@ - middle point Z

 Example:
   0AB1: call_scm_func @getLaserPoint 6 from 0.0 0.0 0.0 to 1.0 0.0 0.0 store_to 1@ 2@ 3@
}
0A96: 11@ = actor $PLAYER_ACTOR struct
0AB1: call_scm_func @getCollisionBetweenPoints 17 from 0@ 1@ 2@ to 3@ 4@ 5@ solid 1 car 1 actor 1 object 1 particle 1 cartyre 1 water 0 ignore_entity 11@ see_through 0 camera_objects 0 shoot_through 0 store_to 6@ 7@ 8@ distance_to 9@ entity_to 10@
0AB2: ret 3 6@ 7@ 8@

:getCollisionBetweenPoints
{
 Parameters:
   Passed:
     0@ - start point X
     1@ - start point Y
     2@ - start point Z
     3@ - end point X
     4@ - end point Y
     5@ - end point Z
     6@ - is solid
     7@ - is car
     8@ - is actor
     9@ - is object
     10@ - is particle
     11@ - is car tyre
     12@ - is water
     13@ - entity to ignore (offset)
     14@ - no see-through stuff
     15@ - no camera objects
     16@ - no shoot-through stuff
   Result:
     17@ - collision point X
     18@ - collision point Y
     19@ - collision point Z
     20@ - distance
     21@ - entity

 Example:
   0AB1: call_scm_func @getCollisionBetweenPoints 17 from 0.0 0.0 0.0 to 1.0 0.0 0.0 solid 0 car 1 actor 0 object 0 particle 0 cartyre 1 water 0 ignore_entity 0x0 see_through 0 camera_objects 0 shoot_through 0 store_to 1@ 2@ 3@ distance_to 4@ entity_to 5@
}
if
 13@ <> 0x0
then
 0A8C: write_memory 0xB7CD68 size 4 value 13@ virtual_protect 0
end
0A8C: write_memory 0xB7CD70 size 1 value 11@ virtual_protect 0
0A9F: 26@ = current_thread_pointer
0AB1: call_scm_func @getLocalVarOffset 2 thread 26@ var 0 store_to 22@
0AB1: call_scm_func @getLocalVarOffset 2 thread 26@ var 3 store_to 23@
0AB1: call_scm_func @getLocalVarOffset 2 thread 26@ var 17 store_to 24@
0AB1: call_scm_func @getLocalVarOffset 2 thread 26@ var 21 store_to 25@
0AA7: call_function 0x56BA00 num_params 12 pop 12 bIgnoreShootThroughStuff 16@ bIgnoreSomeObjectsForCamera 15@ bIgnoreSeeThroughStuff 14@ bDummy 10@ bObject 9@ bActor 8@ bCar 7@ bBuilding 6@ pEntity 25@ pPoint 24@ pTarget 23@ pOrigin 22@ bReturn 31@ // CWorld__ProcessLineOfSight
if
 13@ <> 0x0
then
 0A8C: write_memory 0xB7CD68 size 4 value 0x0 virtual_protect 0
end
if
 31@ <> 0
then
 if and
   17@ <> 0.0
   18@ <> 0.0
   19@ <> 0.0
 then
   050A: 20@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 17@ 18@ 19@
   if
     12@ == 1
   then
     0A9F: 26@ = current_thread_pointer
     0AB1: call_scm_func @getLocalVarOffset 2 thread 26@ var 27 store_to 30@
     0AA7: call_function 0x6E61B0 num_params 7 pop 7 pPoint 30@ fTargetZ 5@ fTargetY 4@ fTargetX 3@ fOriginZ 2@ fOriginY 1@ fOriginX 0@ bResult 31@ // CWorld__TestLineAgainstWater
     if
       31@ <> 0  
     then
       0087: 17@ = 27@
       0087: 18@ = 28@
       0087: 19@ = 29@
       050A: 20@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 27@ 28@ 29@
     end
   end
   0AB2: ret 5 17@ 18@ 19@ 20@ 21@
 end
end
0AB2: ret 5 3@ 4@ 5@ 0.0 0x0

:getLocalVarOffset
{
 Parameters:
   Passed:
     0@ - thread pointer
     1@ - var number
   Result:
     1@ - var value

 Example:
   0AB1: call_scm_func @getLocalVarOffset 2 thread 0@ var 0 store_to 1@
}
if
 0@ <> 0
then
 1@ *= 0x4
 0A8E: 2@ = 0@ + 0xDC // mission flag
 if
   2@ == 1
 then
   1@ += 0xA48960 // mission locals
 else
   005A: 1@ += 0@
   1@ += 0x3C
 end
else
 1@ = 0
end
0AB2: ret 1 1@ 

 

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
 Share

  • 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.