Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Summer Special
      2. The Diamond Casino Heist
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

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

    1. Red Dead Redemption 2

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

    1. Grand Theft Auto Series

    2. GTA VI

      1. St. Andrews Cathedral
    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. Guides & Strategies
      2. Help & Support
    6. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
    7. GTA III

      1. Guides & Strategies
      2. 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. 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
    3. Gangs

    1. Announcements

    2. Support

    3. Suggestions

OrionSR

[SA] Girlfriend Phone Call Investigation

Recommended Posts

OrionSR

The purpose of this topic is to document our investigation into how the girlfriend calls are managed. A better understanding of the scripts should help special vehicle collectors and speed runners to better exploit the calls to set the On Mission flag to 0 during a mission.

 

The current discussion is a branch from a conversation about special vehicles. The relevant information starts here; I plan to repeat info in context rather than copy by quote.

 

Reference topic: [SA] Girlfriend Globals / Bitmasks Documentation of many of the variables that control girlfriend status and preferences.

 

 

The current investigation is into the variables used in the GFAGNT thread.

 

GFAGNT Local:

 

[email protected] = temp variable, multiple uses

[email protected] = hours for next call

[email protected] = minutes until next call

 

The time values are generated randomly when the girlfriend index is selected if the girlfriend is active and progress is above -15%. $392 is set to 21 at this time.

 

Global Variables:

$389 is referenced as $Girlfriend (not exactly sure how it's used just yet).

$391 bit flag variable associated with call in GFAGNT and MOB_GF. Relevant bits are a girlfriend index ($389 or $393), 10, 11, 25, 26 and 31.

$392 appears to be a flow control variable for GFAGNT.

$393 is referenced as $Girl_Dated_Now (custom variable names are user made and may not accurately describe the purpose)

 

$392 flow control? These comments are very speculative.

 

= 20, initial setting, believed to be the default condition

= 21, random girlfriend and time to call has been set

= 22, create_thread @Girlfriend_Calling $Girlfriend 1 (normal call?)

= 23, skips progress -= 2 if call taken? (damned bitmasks)

= 24, create_thread @Girlfriend_Calling $Girl_Dated_Now 2 (dumping CJ call?)

 

$393, $Girl_Dated_Now

 

* The custom name doesn't appear to match the purpose of this variable. Maybe Girl Calling Now? But the custom names are too ingrained to be changed now.

 

$393 is only assigned in 4 routines:

  1. $393 = random girlfriend index if the girlfriend is active and progress is good enough, random call time is generated, $392 is set to 21.
  2. $393 = -1 if a date is missed. I believe that the text displayed is associated with taking the call and not showing up in time.
  3. $393 = -1 if... a date is launched? Maybe? I'm lost in the jump table, could be any number of conditions that precede this routine.
  4. $393 = $389 ($Girlfriend) if progress is >= -15% just before a call thread is launched. This looks like the dumping CJ call.

There are several girlfriend progress conditions I'm skipping over. The girlfriend progress variables are an array indexed by girlfriend. The global values are usually updated to the associated stats, but the stat values are never read, and occasionally are out of sync or hidden.

 

IF AND

NOT progress == -100 (dumping complete?, gifts removed)

NOT progress == -999 (killed by CJ, other deaths, possibly unused)

 

IF

NOT progress == -99 (dumping? call received or date finished below -15%)

 

$392 = 23 (call taken?): This setting is associated with a routine that sets the next call hours and minutes to the current hour + 5 hours, and minutes to 31.

Edited by OrionSR
  • Like 6

Share this post


Link to post
Share on other sites
OrionSR

GFCalls.txt - cleo script to watch relevant variables.

 

Call hours and minutes, Flow control, Girl Now, GirlFriend, and Girl Progress indexed by girlfriend.

 

 

 

{$CLEO .cs}// GFCalls.txt// FXT: 6NUM3 Call ~1~:~1~ Flow ~1~ GN ~1~ ~n~ GF ~1~ GP ~1~0000:wait 0while true  wait 0  0AAA: [email protected] = thread 'GFAGNT' pointer  0085: [email protected] = [email protected]  [email protected] += 0x3C // offset to local variable space  [email protected] = 5 // local variable  [email protected] *= 4  005A: [email protected] += [email protected]    0085: [email protected] = [email protected]  [email protected] += 0x3C // offset to local variable space  [email protected] = 6 // local variable  [email protected] *= 4  005A: [email protected] += [email protected]  while true    wait 100    0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0    0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0    0308: text_6numbers '6NUM3' [email protected] [email protected] $392 $393 $389 $Girl_Progress($Girlfriend,6i) 100 ms 5   end  end

 

 

 

Initial observations:

 

$Girlfriend variable rotates every half second or so unless CJ is near a girlfriend's house, meeting location, or on a date.

Dating a girlfriend who is not calling now does not reset the calling flow.

Meeting a girlfriend doesn't reset the call flow,

Flow 22 = call started, flow 23 = call answered.

A missed call will reset flow to 20 and almost immediately a new random call girl is generated and flow is back to 21. CJ must be "in town" to miss a call.

If CJ is close enough to the girl's house to stop the rotating girlfriend variable then a call will not be made that day. Save it for tomorrow with no progress loss.

Answering a call sets the call time to current hours + 5 and minutes to 31.

 

Other note: I tried locking the wanted with SACC and dating Katie in restricted territory, but the home sphere didn't appear after the successful food date.

Edited by OrionSR
  • Like 2

Share this post


Link to post
Share on other sites
rhans

Regarding gf calls I have observed something (they are mere observations, they may not provide a correct analysis), I think Denise`s calls can only be recieved while in Los Santos, Kate`s and Michele`s in San Fierro, Millie`s in Las Venturas and finaly Barbara`s and Helena`s in either Flint County, Red County, Whetstone, Tierra Robada and Bone County. Also there are 2 methods of "duping" the ones you hold the call using TAB/L1 (8-Track, Bloodbowl) and the ones you fail the setup mission while recieving a call (Turcking, Hunter Quarry). Since gf calls are harder to pinpoint, the second method should be insanely hard to do it (unlike storyline calls the repeat themselves a fixed amount of time, and it will ring as soon as you leave your vehicle if you stayed inside it a time greater than this fixed ammount, making it very easy to manipulate when they occur). So gf calls are more easily used for duping by the holding call method, the problem is, I don`t think you can hold call if you break the condition of recieving the call (example: hold a Denise`s call and go to Red County), so "duping" with gf calls in the Countys should be very hard since there are no stadiums(so you can only use trucking/quarry) and you are limited to Barbara/Helena calls.

 

Edit: A good example would be Og Loc`s call before House Party mission, which can only happen between 20:00-6:00, so you couldn`t hold the call past 6:00 as the condition to recieve the call is no longer met.

Edited by rhans

Share this post


Link to post
Share on other sites
rhans

I also did some testing in that save you sent me with a pinpointed gf call, I noticed that gf calls can`t de delayed, they will happen the time they are set to, if you can recieve you will, if you can`t you miss it (by being in an interior or in a mission). I noticed the call would occur always at 9:31 even if I left the house at 9:15 or 9:27, it didn`t matter. If I happen to start a mission and end it before 9:31 the call also occurs at the set time of 9:31.

 

Also whenever you start the mission Reuning the Families the game skips to 19:30, which is after the call is set to occur, so it will only happen 9:31 of the next day, strange, isn`t it? I would like to do some further testing in this mission, do you think its possible to make a save with a call set to happen exactly at 6:00 and send it to me? Because the last cutscene of that mission happens at that time and I would like to see what I am able to do by using the phone call to gain movement during it?

 

Oh sorry, not 6:00, during the chase I have to die and that advances the game 12 hours so I would needto recieve the call at 18:00.

Edited by rhans

Share this post


Link to post
Share on other sites
OrionSR

Repeating a bit from the special vehicle topic...

 

GTA:SA Save Game Editor v1.0 by Ryosuke: http://gtasamod.web.fc2.com/tool/sase/index.html

 

This tool is an excellent save viewer that makes it pretty easy to read the values stored in these variables. It can also edit your variables. I generally don't use SASE to edit my saves because it has some odd quirks with the cheat flag and clothing, which makes me worry about what else it might be doing, but that shouldn't matter for a test save.

 

I've been using San Andreas Control Center as my trainer to manipulate game variables like time of day, CJ's location, wanted level, and girl progress.

 

Girlfriend Index: 0 = Denise, 1 = Michelle, 2 = Helena, 3 = Barbara, 4 = Katie, 5 = Millie

 

http://gtasnp.com/KSwTaU

 

Above is rhan's save where Denise refuses to call - we know now this is because Katie is set to call at 9:34. Note that the call usually comes in several seconds before the call time. I've seen hints in the scripts that suggest a maximum of 5 seconds; I think Nick observed that calls are made 4 seconds early.

 

http://gtasnp.com/jMxa2H

 

I successfully edited $393 (Girl Now) in this save so Denise will call instead of Katie, and changed the game time to shortly before the call.

 

http://gtasnp.com/KYmq9C

 

I changed the save again so Denise would call as close to 6 as possible (6:03 call time) and set the game time to 5:00.

 

 

Denise's call was postponed until the next day when I parked close enough to her house for the girlfriend index cycle to stop. You could also advance time with save/busted/wasted. IIRC, boat school always sets the time to noon, in case that helps somehow.

 

The hours and minutes of the call time generated with the next girl to call appear completely random. It's not too much trouble to edit their hours of of availability, btw.

 

I'm hoping I can find a little better description of "in town" hidden somewhere in the scripts.

 

Update: It looks like "in town" really is the best description. I found a routine with this line of code:

0842: [email protected] = player $PLAYER_CHAR town_number 

Then there's a jump table indexed by girlfriend that checks for town 1, 0, 0, 2, 2, 3, which would correspond nicely with the sequence of Denise, Michelle, Helena, Barbara, Katie and Millie. So... Do the cities correspond with the LS, SF, and LV zone counties? Are the SAN_AND parent zone and off the map areas included as town 0? No, that's wrong. The matching town sequence by girlfriend index would be 1, 2, 0, 0, 2, 3.

Edited by OrionSR
  • Like 1

Share this post


Link to post
Share on other sites
rhans

Thanks again for your help Orion! Sorry that I edited the post too late, I forgot that death during the chase makes the ending cutscene at 18:00 and not 6:00 anymore,since death makes the game advances 12 hours. Sorry for troubling you even more, but can you make the call happen at 18:00.

Share this post


Link to post
Share on other sites
OrionSR

Denise Calls at 18 http://gtasnp.com/SVNy8X

^There's a problem with this save, but I want to keep the link for reference. I'll update shortly. The same problem effects the call at 6 save.

 

Any idea why I can't finish a date normally on this save? The home sphere never appears. Editing error; something I did inadvertently.

 

When CJ accepts a call from Denise (hard to generalize too much at this point) the gf call hours are set to the current hour + 5, and minutes to 31. This is the time allotted to arrive for the date, but there is no call.

 

 

Denise calls at 18:00 http://gtasnp.com/X9LpR6

 

This save seems to be working as expected. I reverted to our first test save with Denise calling since everything seemed to be working as expected. The call comes in a fraction of a second before 18:00 when set to 18:04. I might be able to fine tune that by altering the rotating girlfriend global. I don't think the call can be made until their number comes up - perhaps that why the 5 second grace was coded as it takes about 3 seconds for the cycle to complete. Game time loads at 17:00, and I added one week day so Denise would be available for her next date.

 

Denise Calls At 18:00 http://gtasnp.com/OAyuyO

 

Same as before but I decreased the Girlfriend global ($389) by 1 and now Denise calls slightly after 18:00.

Edited by OrionSR
  • Like 1

Share this post


Link to post
Share on other sites
rhans

I downloaded the GTA:SA Save Game Editor v1.0 by Ryosuke

And thanks to your explanation at your first post about GFAGNT I know how to set the call to the time I want to, thanks.

It seems breaking free of cutscenes by gaining movement with phone call and info icon pick up work a bit differently, with the icon you can see your health, armor, the minimap, the time, your equiped weapon and your money, with the call not.

Unfortunately I spent my info pick ups, I will try to find the ID of one of them and see if I can put a new one somewhere in the map.

Edited by rhans
  • Like 1

Share this post


Link to post
Share on other sites
OrionSR

Info pickups huh? Might be tricky with just a save editor. It's a bit off topic but I'll take a peek when I can. They are tied to the help thread, it might be possible to assign any other pickup to do the job if the variables are tweaked correctly.

 

Progress -999 resulted from CJ killing Denise during a date, as expected. What was not expected was that Katie did not get selected for the next call until CJ was in SF. I'm not sure if it was the murder or perhaps now CJ only has one girlfriend, or no girlfriend in town, or... not really sure why this happened yet. When finishing Denise's date normally Katie might get selected for the call.

 

The missing home sphere might be related to canceling a date at the gym. It might be a while before I can follow up with more observations. Got some long work hours ahead.

 

Added info on Info Icons:

 

Assuming the help thread is still active: Set $Help_Busted_Shown ($126) to 0 so the code is active again. Assign $Pickup_Info_Police ($671) to the value of a global variable used to create a pickup.

 

LS Studio Weapons, last 4 default pickups. Note that the pickup will be destroyed in the process. I think the editor will allow you to move these pickups and maybe change the model. I can suggest some accessible pickups if the trick works.

032B: $5237 = create_weapon_pickup #AK47 type 15 ammo 60 at 825.921 -1165.813 17.8936 032B: $5238 = create_weapon_pickup #SAWNOFF type 15 ammo 40 at 832.603 -1273.861 14.4833 0213: $5239 = create_pickup #NITESTICK type 15 at 911.6486 -1235.39 17.6802 0213: $5240 = create_pickup #SNIPER type 15 at 733.4333 -1356.47 23.5229 

Adding new icons would be a pretty simple process with cleo.

Edited by OrionSR
  • Like 1

Share this post


Link to post
Share on other sites
rhans

Do you know if it matters getting Kate as girlfriend before or after Burning Desire? In that save I was having a hard time getting a call I am not sure but if I recall correctly I got Kate as girlfriend after Burning Desire, so I am thinking of trying to unlock her before doing this mission and see if I will still have a hard time getting a call.

Share this post


Link to post
Share on other sites
Lethal Vaccine

I think someone mentioned (Maybe Nick) that whichever Girlfriend you just got as a new one, or the one you just got done going on a date with is ACTIVE. So if you get Katie AFTER Burning Desire, well then SHE is active and not Denise.

 

I think, anyways...

  • Like 1

Share this post


Link to post
Share on other sites
OrionSR

Nick mentioned that dating a girlfriend would make her active, but recent observations suggest this does not effect which girl is calling unless the date is with the girl scheduled to call.

 

I doubt it matters much if you get Katie as a girlfriend before or after Burning Desire. I would expect that if Katie is met after Denise then Denise will be schedule to call next (since meeting a new girl doesn't change which girl is calling), but as soon as that call is resolved with a date or a call, accepted or missed, then a random girl will be selected from the available girlfriends. Based on the little information I've gathered so far I would suggest; if you want all calls from Denise only, then meet her first, then whenever a call is resolved check who is calling next, and reload and try again if it's not Denise.

Edited by OrionSR
  • Like 2

Share this post


Link to post
Share on other sites
rhans

So, after the call is missed/answered and random girlfriend is made active, hmm I see, this is going to be harder than I expected. But good tip, so I will unlocking Denise first will make her call me first, then it will be a random chance it is going to be her again calling afterwards. Since those call are scheduled to a random hour and random minute it means it is necessecary to wait a maximum for 24 real life minutes with no calls to know for sure she wasn`t chosen as the the next "active" girlfriend again after the first call right?

Edited by rhans

Share this post


Link to post
Share on other sites
OrionSR

Interesting strategy. A PS2 player may want to take advantage of a Faster Clock cheat, but a PC player can simply read the variables with SASE. I can't think of any easy options for mobile players though.

Share this post


Link to post
Share on other sites
rhans

I tested the faster clock cheat on one save with an edited call which would happen around a time I had chosen in the save editor and the call wouldn`t happen, I also tested the faster gameplay cheat and this one worked, the call happen around the time I was expecting.

Edited by rhans
  • Like 1

Share this post


Link to post
Share on other sites
rhans

During GF dates you don`t recieve calls right, but its not because of OMF1, there is another variable that prevents calls, isn`t there?

Share this post


Link to post
Share on other sites
OrionSR

Based on the limited testing I've been able to conduct so far: If CJ is on a date the $Girlfriend global is locked on the girl being dated and doesn't cycle, so the other girlfriends can't call because their number never comes up. When CJ starts a date with the girlfriend scheduled to call the flow control variable is set to 20 (initial = no call girl selected) and the calling girl is set to -1. These values persist until the date has ended.

 

So... why doesn't anyone else call during a date? Maybe I'll look in to this later.

  • Like 1

Share this post


Link to post
Share on other sites
dkluin

sh*t apperantly there's some hardcoded behaviour included in this system? Thanks for documenting this :p

  • Like 1

Share this post


Link to post
Share on other sites
rhans

I wanted to do some testing but I don`t have have Ryosuke save game editor anymore, do you know if it is still available? For some reason I am unable to download it this time.

Share this post


Link to post
Share on other sites
Inadequate

I wanted to do some testing but I don`t have have Ryosuke save game editor anymore, do you know if it is still available? For some reason I am unable to download it this time.

 

Here it is...

Part 1: sase100.r00
Part 2: sase100.rar
  • Like 2

Share this post


Link to post
Share on other sites
rhans

After a girlfriend call CJ it means you are expected to date her before some kind of timer is over, then you get a message saying you missed the date. Is it possible to foresee when this message come or is it random?

Share this post


Link to post
Share on other sites
OrionSR

Not really a direct quote; I gathered the relevant info into the same spot.

$392 = 23 (call answered): This setting is associated with a routine that sets the next call hours and minutes to the current hour + 5 hours, and minutes to 31.

Flow 22 = call started, flow 23 = call answered.
[email protected] = hours for next call
[email protected] = minutes until next call


The same local variables used to store the next call time are used to record the time CJ is allow to meet the girl for the date before that message is displayed. These values are displayed by the GFCalls script and my notes make it look like it is set at the end of the call. The time limit will be the current hour plus 5, the minute will always be 31, and there might be a grace period of a couple of a few second to allow for the rotating girlfriend variable,

 

Added: If you are interested, we could expand on this topic a bit to include strategies for (re)enabling other phone calls to assist with testing.

Edited by OrionSR

Share this post


Link to post
Share on other sites
rhans

Hi, I am interested in girlfriends calls again but for another reason. Since the AP conversion it seems a good ammount of people wont care much about those calls since there is a not a specific vehicles that require them now. I would really like to thank you Orion for this topic, as it has helped me doing some stuff that is only possible with with girlfriend calls, such as duping some missions where calls are not available, but most important, being able to triple some missions. Gf calls are the only calls that can be used for OM0 setup with valet, and valet is the only mission that can be started during other missions without messing with it (crashing the game or cancelling the mission), so thats why most missions can only be tripled with the use of a gf call.

So what I want to ask is if you can use the save and load trick to check the schedule of multiples gfs calls, or only the 1 next gf call that is going to happen? I am asking this because foreseeing more than 1 call would allow player, to quadruple or even more the missions.

Here is the triple setup that only works with valet + gf calls:

 

Edited by rhans

Share this post


Link to post
Share on other sites
OrionSR

You won't be able to predict multiple girlfriend calls by reading the save file. Sorry.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

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