Coding

 Reply to this postStart new topic

Requests Topic

jayd00
post Mar 29 2014, 01:49 AM
Post #101


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



wink.gif

hey, it's me again lol

could you teach me a little bit about how to store a "NAME" in a memory pool?

for example; Is easy to store an object, like this example;
CODE
{Ryosuke Example}
for 0@ = 0 to 9
    0093: 1@ = integer 0@ to_float
    04C4: store_coords_to 5@ 6@ 7@ from_actor $PLAYER_ACTOR with_offset 0.0 1@ 0.0
    0107: 2@ = create_object #KNIFECUR at 5@ 6@ 7@
    gosub @get_pointer
    0085: 4@ = 0@ // (int)
    0012: 4@ *= 4    /// SIZE
    005A: 30@ += 4@ // (int)
    0A8C: write_memory 30@ size 4 value 2@ virtual_protect 0
end
for 0@ = 0 to 9
    gosub @get_pointer
    0085: 4@ = 0@ // (int)
    0012: 4@ *= 4    /// SIZE
    005A: 30@ += 4@ // (int)
    0A8D: 2@ = read_memory 30@ size 4 virtual_protect 0
    if
    03CA:   object 2@ exists
    then
        0108: destroy_object 2@
    end
    0A8C: write_memory 30@ size 4 value 0 virtual_protect 0
end

:get_pointer
0A9F: 30@ = current_thread_pointer
000A: 30@ += 0x10
0A8D: 30@ = read_memory 30@ size 4 virtual_protect 0
000E: 30@ -= @pool
return

:pool
hex
//2@ - knife pool - 40byte
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
end


then, I've seen that they usually store a "Name" into something like this;
CODE
:list
hex
"____________________" "____________________" "____________________" "____________________"
"____________________" "____________________" "____________________" "____________________"
00
end


how can I write a "name" inside this temp-Mem-space?
and how to read it and make it usable? how to know how many temp-Mem-space(byte) is needed to create, for a name?

for example I wanna write, names like this ones in the temp-Mem-space;(ignore them, they are just examples)
CODE
skin1
skin2
skin3
skin4
supermegaskin1
supermegaskin2
supermegaskin3
supermegaskin4


thanks for your help thumbsup.gif

This post has been edited by jayd00: Mar 29 2014, 01:55 AM


--------------------


Go to the top of the page
 
+Quote Post
uokka
post Mar 29 2014, 09:53 AM
Post #102


Actually living entity

Posts: 143
From: Earth
Joined: 15-January 11



Maybe this can help as a simple example:
http://gtaforums.com/topic/661961-gta-sa-m...entry1065053761


--------------------
My english is just perfekt. I am only not sure, whether I it rightly utilize..
. . .
Go to the top of the page
 
+Quote Post
Deji
post Mar 29 2014, 02:57 PM
Post #103


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



QUOTE (uokka @ Mar 29 2014, 09:53 AM) *
Maybe this can help as a simple example:
http://gtaforums.com/topic/661961-gta-sa-m...entry1065053761


You're asking something which can be answered in a number of ways, the correctness of each depends on what your use for the technique is. I started writing a reply, however it became too long for a simple answer - it'd honestly be better for me to post it as a tutorial... tongue.gif


--------------------
Go to the top of the page
 
+Quote Post
jayd00
post Mar 30 2014, 03:28 AM
Post #104


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



QUOTE (uokka @ Mar 29 2014, 03:53 AM) *
Maybe this can help as a simple example:
http://gtaforums.com/topic/661961-gta-sa-m...entry1065053761

thanks.. but thats not what I want... :/ it works something like that, but they are using a mem-space to store a 'format', and write a value (number), something like;
CODE
0AD3: 0@v = format "%d + %d = %d" 2 2 4

and that's not what I need... I want to be able to write a "name" (short string & long string)
for example; write a name skin, read & load skin, and change to that skin :/

QUOTE (Deji @ Mar 29 2014, 08:57 AM) *
You're asking something which can be answered in a number of ways, the correctness of each depends on what your use for the technique is. I started writing a reply, however it became too long for a simple answer - it'd honestly be better for me to post it as a tutorial... tongue.gif

I thought that it could be explained, in a single script like the last one tongue.gif
actually it doesn't matter, if you can help me in any way, it will be fine for me.. wink.gif thanks
thumbsup.gif


--------------------


Go to the top of the page
 
+Quote Post
The Clansman
post Jun 13 2014, 09:41 PM
Post #105


The New Guy!

Posts: 3
Joined: 13-June 14



First off, sorry for my english

I already asked this on GTAF, no one helped

I want to disable lens flare and corona star during fire

Here's the code to disable lens flare

{$CLEO}
0A8C: write_memory 0x53B759 size 1 val 0 vp 1
0A93: terminate_this_custom_script

Here are the memory adresses to disable corona star, provided by DK

0x53B7E0 0x53B893 0x53B99C 0x53BAA5

I tried to follow the pattern of the lens flare disabling code, but my game crashes

Please, someone, help
Go to the top of the page
 
+Quote Post
Deji
post Jun 13 2014, 10:31 PM
Post #106


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



You can do it in one write (untested)...
WRITE_MEMORY 0x53B55F {size} 4 {val} 0x00054CE9 {vp} TRUE


This post has been edited by Deji: Jun 14 2014, 01:45 AM


--------------------
Go to the top of the page
 
+Quote Post
The Clansman
post Jun 13 2014, 10:46 PM
Post #107


The New Guy!

Posts: 3
Joined: 13-June 14



Crashed...
Go to the top of the page
 
+Quote Post
Deji
post Jun 14 2014, 01:45 AM
Post #108


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



D'oh, copied wrong address. Fixed in edit.


--------------------
Go to the top of the page
 
+Quote Post
The Clansman
post Jun 14 2014, 02:17 AM
Post #109


The New Guy!

Posts: 3
Joined: 13-June 14



Now THAT is what I'm talking about!

Thank you so much Deji, keep it up!
Go to the top of the page
 
+Quote Post
Wesser
post Jun 14 2014, 10:09 AM
Post #110


The Assistant

Posts: 84
From: Matera, IT
Joined: 16-June 11



Deji, wouldn't it be better to skip the parent check aswell? tongue.gif
CODE
WRITE_MEMORY 0x0053B548 {size} 1 {val} 0xE9 {vp} TRUE
WRITE_MEMORY 0x0053B549 {size} 4 {val} 0x00000563 {vp} TRUE
Go to the top of the page
 
+Quote Post
jayd00
post Nov 14 2014, 06:09 AM
Post #111


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



hey could you help me with a small doubt?..
why does something like this don't work:

{$CLEO}
const
    //[byte] Can be either on (1) or off (0).
    BlowUpCars  = 0x96914A
end
0000:

while true
if  0AB0:   key_pressed 8 // backspace
then
    0A8C: write_memory BlowUpCars size 1 value 1 virtual_protect 0
    wait 1500
end
wait 0
end


but if I do this, it works:
{$CLEO}
const
    // http://gtagmodding.com/sanandreas/cheats/
    BlowUpCars  = 0x439D80
end
0000:

while true
if  0AB0:   key_pressed 8 // backspace
then
    0AA5: call BlowUpCars num_params 0 pop 0
    wait 1500
end
wait 0
end



the first way isn't supposed to work?..
thanks wink.gif


--------------------


Go to the top of the page
 
+Quote Post
Deji
post Nov 14 2014, 09:21 PM
Post #112


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



QUOTE (jayd00 @ Nov 14 2014, 06:09 AM) *
hey could you help me with a small doubt?..
why does something like this don't work



0x439D80 is the base address of a .code callable function.
0x96914A is the address of a variable array index in .data

They're both completely different things. You execute code, and read/write data. Each memory address can point to either of these.


--------------------
Go to the top of the page
 
+Quote Post
jayd00
post Mar 6 2015, 03:50 AM
Post #113


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



hey, can you help me?... is there any possibility to control the upper body angle?
Like when aiming at sky using gun, the upper body also facing at the sky

thanks wink.gif thanks.gif


--------------------


Go to the top of the page
 
+Quote Post
Deji
post Mar 6 2015, 09:32 AM
Post #114


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



Create a partial (upper body) animation.


--------------------
Go to the top of the page
 
+Quote Post
jayd00
post Mar 7 2015, 08:45 PM
Post #115


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



how to assign a partial animation, without interrupting the current animation?...
example: walking animation, and aiming at sky. (with new upper body animation)






--------------------


Go to the top of the page
 
+Quote Post
jayd00
post Apr 16 2015, 04:01 AM
Post #116


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



hey can you help me a little bit..?

I want to Create An Object in Random place around SA

comething like;
0AB1: Get @randomCoords 0 -> CoordsXYZ 21@ 22@ 23@
02CE: 23@ = ground_z_at 21@ 22@ 23@
0107: 15@ = create_object 20@ at 21@ 22@ 23@
09CA: set_object 15@ immunities BP 1 FP 1 EP 1 CP 1 MP 1

:randomCoords
//0AB1: Get @randomCoords 0 -> CoordsXYZ randomXCoord randomYCoord randomZCoord
wait 0
0208: 4@ = random_float_in_ranges -2885.3704 2819.8276
0208: 5@ = random_float_in_ranges -2636.803 2816.1978
6@ = 200.0
0AB2: ret 3 4@ 5@ 6@

but for some reason, it always appear below ground. :/
I don't care if it appear above a building, the problem is that I can't imagine how the opcode 02CE works exactly. :S
because always put the Object below ground.

With this code, is "supposed" to create the object in a random place around SA above ground. But does not.
I read this from GTA Forums by fastman92
http://www.imagebam.com/image/ccf947323013104
But I still don't get, how to make it work as I want?.

thanks wink.gif


--------------------


Go to the top of the page
 
+Quote Post
Deji
post Apr 18 2015, 01:02 PM
Post #117


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



The problem is that GET_GROUND_Z_FOR_3D_COORD works by detecting collisions underneath the Z provided and returning the first one found, however this can only work if collisions at the specified point are actually streamed in, like the ground CJ walks on.

Furthermore, this kind of points out your major design flaw from the beginning. It's not too regular to have lots of objects existing miles away from the player, so it would be a better idea to create your objects 'virtually' and then actually create these objects when the player approaches a close enough distance, say 80.0 feet away.

Then perhaps you don't need to go to all the effort of loading in far away parts of the map just to create some objects, you instead wait until the parts of the map where the objects are gonna be placed to create them.

Since you're doing this dynamically, though, which is another irregularity in standard GTA3script/SCM, you will have to use more irregular methods in order to basically create your own streamer, which may involve dynamically allocating memory and using various custom storage methods - outside the usual simplicity that you may be used to. Unfortunately, GTA3script is more about doing stuff that is consistent rather than basically creating programs dependent on dynamic input.


--------------------
Go to the top of the page
 
+Quote Post
jayd00
post May 5 2015, 05:52 AM
Post #118


Ameteur Member

Posts: 42
From: Guatemala
Joined: 22-December 09



thank you again @Deji... thumbsup.gif I can understand now... There is need to be in a place to create the object over ground.

hey, I have a doubt with animation opcodes

0605: actor -1 perform_animation "M_SMKLEAN_LOOP" IFP "LOWRIDER" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
0812: AS_actor -1 perform_animation "LRGIRL_IDLELOOP" IFP "LOWRIDER" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
088A: actor 34@ perform_animation "RAIL_FALL" IFP "SWAT" 8.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1 disable_force 0 disable_lockZ 1
0A1A: actor 88@ perform_walk_animation "HIKER_POSE_L" IFP "MISC" framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 1 -1 ms // versionC

All these opcodes has a parameter named: "framedelata"
What does this parameter?
I changed this parameter for any value and I can't see any difference. blink.gif ermm.gif
thanks! laugh.gif

This post has been edited by jayd00: May 5 2015, 05:53 AM


--------------------


Go to the top of the page
 
+Quote Post
Deji
post May 6 2015, 08:31 AM
Post #119


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



See the OpcodeDB pages for all we know... 0605, 0812, 088A, 0A1A.

You might also want to update your SB files there since yours give names which make little sense.


--------------------
Go to the top of the page
 
+Quote Post
zugg48
post Mar 17 2017, 02:52 AM
Post #120


The New Guy!

Posts: 1
Joined: 7-July 13




Hi guys, I need GTA SA memory adresses for:


- Disable weapon automatic reload.

- Disable weapon dissapear feature when the ammunition is empty. (Player can have gun with 0 bullets).


Thanks!
Go to the top of the page
 
+Quote Post
Reply to this postStart new topic

4 User(s) are reading this topic (4 Guests and 0 Anonymous Users)
0 Members: