Quantcast

Jump to content

» «
Photo

MISSION CODING IV

520 replies to this topic
SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#421

Posted 28 July 2007 - 07:22 AM

OK, I've implemented it this way. The CS will now always play as intended, while preserving the chance of suicide if the rat screws up. tounge.gif

I'm just testing a quite complex way of improving the roof finding routine of the crushers.
It looks like 0339 could be used for that, it checks for actors/vehicles/objects/... inside the given cube.

TheDude5000
  • TheDude5000

    Soak of the year!

  • BUSTED!
  • Joined: 20 Jun 2005

#422

Posted 01 September 2007 - 10:19 AM

Hmm, me and Godgell are trying to get an opcode to work. This one is supposed to move a map object to certain coords on the map, but we don't know everything about the values or where in the script itself to put it.

CODE
034e $objectID, X1, Y1, Z1, X2, Y2, Z2, int (0)

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#423

Posted 01 September 2007 - 11:21 AM

Oh yeah, 034E - a great opcode indeed! Why don't you check the Opcode database or the LC code to check the ways of using it?

Example lines from LC:
CODE
034E: move_object $CCmagnet to 11@ 12@ 15@ speed 3@ 3@ 3@ hold_on_obstacle 0
034E: if object $CCmagnet at 0@ 1@ 2@ then_move_by_step 0.0 0.0 3@ hold_on_obstacle 0


I'd need to know exactly what you want to achieve if you need more help.

TheDude5000
  • TheDude5000

    Soak of the year!

  • BUSTED!
  • Joined: 20 Jun 2005

#424

Posted 01 September 2007 - 11:38 AM

Well what we wanna do is to take a boat model(map object, not a vehicle, if it was a vehicle I'd obviously be able to move it myself) and have the script move it out to "sea", if you will. This way it looks as if someone is driving the boat away from the docks, towards the ocean. To put it simple, having one map object moving in one direction, at a slow enough rate. Not too slow, but not too fast, to resemble a realistic boat speed. Essentially we're trying to give the illusion that this map object is really a moving vehicle and it's cutting through the water, past the camera, then out to the ocean.

We'd appreciate the help, thanks. wink.gif

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#425

Posted 01 September 2007 - 12:06 PM

As you can see, the first parameter of this opcode expects an object handle. Static map objects that are defined in the IPLs don't have such a handle, they are completely unknown to the script. That means you need to spawn your boat object from inside the mission script to make it controllable.
You need to request and load your model (0247 and 038B) first, then you can use 029B to spawn the object. You can now use 034E to move it, like
CODE
:MoveBoatLoop
00D6: if 0
834E:   NOT object $MyBoat at $X $Y $Z then_move_by step $SpeedX $SpeedY $SpeedZ hold_on_obstacle 0
004D: jump_if_false ££BoatHasReachedDestination
0001: wait <insert low value here to make the movement look smooth> ms
0002: jump ££MoveBoatLoop


You need to adjust the Speed and WAIT values yourself.

Don't forget to delete the IPL entry if you're using an existing map object (i.e. the ships at the docks)!

TheDude5000
  • TheDude5000

    Soak of the year!

  • BUSTED!
  • Joined: 20 Jun 2005

#426

Posted 01 September 2007 - 12:27 PM

Cool, thanks. I'll go over it with Godgell when he wakes up. tounge.gif

ELLIS1991
  • ELLIS1991

    GTA Fan

  • Members
  • Joined: 26 Sep 2006

#427

Posted 20 September 2007 - 04:27 AM

were can i download all the missions from ???

Ben
  • Ben

    Retired

  • Members
  • Joined: 12 May 2005

#428

Posted 20 September 2007 - 08:24 AM

The missions are all coded in the main.scm file (which is in the LC\data\ directory). Obviously, this file is included in the main download (see the pinned DOWNLOAD topic) wink.gif .

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#429

Posted 27 October 2007 - 05:05 PM

Get the latest script files here.
They allow you to play 'Van Heist' exactly as intended for the very first time!

Kurropt Antagonist
  • Kurropt Antagonist

    Hustler

  • Members
  • Joined: 03 May 2004

#430

Posted 29 October 2007 - 06:32 PM

Could the Bistro icon be disabled during missions?

The first map-marker was actually blocked off during "Mike Lips' Last Lunch."

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#431

Posted 29 October 2007 - 06:55 PM Edited by SteaVor, 29 October 2007 - 07:24 PM.

That is already implemented in my heavily modified WIP SCM.

There are multiple ways to achieve this, and I'm currently determining the best one.

EDIT:
The icon only shows if the bistro is visible on the radar (VC behavior) AND you're not on a mission. You can still enter the bistro while on a mission.

Kurropt Antagonist
  • Kurropt Antagonist

    Hustler

  • Members
  • Joined: 03 May 2004

#432

Posted 29 October 2007 - 07:32 PM Edited by Kurropt Antagonist, 29 October 2007 - 07:47 PM.

Edit: Misunderstood you. blush.gif

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#433

Posted 29 October 2007 - 07:42 PM Edited by SteaVor, 29 October 2007 - 07:46 PM.

No you haven't. I was talking about the behavior in my experimental dev version that only exists on my HDD. I'm not sure if I should disable the Bistro marker for all missions (that's how it is now - as long as $ONMISSION is set the marker won't show up) or during MLLL only.

Ben
  • Ben

    Retired

  • Members
  • Joined: 12 May 2005

#434

Posted 30 October 2007 - 01:55 AM

QUOTE (SteaVor @ Oct 30 2007, 06:42)
No you haven't. I was talking about the behavior in my experimental dev version that only exists on my HDD. I'm not sure if I should disable the Bistro marker for all missions (that's how it is now - as long as $ONMISSION is set the marker won't show up) or during MLLL only.

I'd suggest doing it the same way it's done with asset properties in VC - if the asset property icons are displayed when you're on a mission, then display the bistro icon in LC too (except for MLLL, as you said) - I haven't played VC in some time, but I'm pretty sure the asset property icons are displayed during missions (as long as you own them).

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#435

Posted 30 October 2007 - 08:01 PM

You're right again, I've coded it that way now - the icon will be disabled during MLLL only.

LCSurvivor
  • LCSurvivor

    X

  • Members
  • Joined: 24 Jan 2006

#436

Posted 30 October 2007 - 10:07 PM

I am still kinda wondering, are you going to put the mist, or fog, from III in LC?

It would help give the game that extra touch of mood and authenticety smile.gif

Ben
  • Ben

    Retired

  • Members
  • Joined: 12 May 2005

#437

Posted 31 October 2007 - 08:17 AM

That's something I'd imagine you'd have to talk to AK-73 about, seeing as he handled the VC:Weather module. I thought he'd already implemented the weather effects from GTA3 in LC, but you're saying the fog/mist doesn't work correctly? If someone brings that to his attention he should be able to fix it wink.gif .

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#438

Posted 31 October 2007 - 07:37 PM

The fog should be in already, but it looks like the config file (vc_weather.cfg) is corrupt once more. I'm going to upload a fixed version soon.

LCSurvivor
  • LCSurvivor

    X

  • Members
  • Joined: 24 Jan 2006

#439

Posted 31 October 2007 - 10:20 PM

Allright then, thanks SteaVor! It just ain't Liberty City without the fog smile.gif

EDIT: And thanks Ben, too, naturally.

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#440

Posted 04 November 2007 - 11:21 AM Edited by SteaVor, 04 November 2007 - 05:53 PM.

Ah, it seems that the latest version of VC:Weather flipped the meaning of the 'default weather table' setting: it was set to 1 in the previous versions, but it should be 0 in the new one. At least that's what testing suggests - I've PMed AK-73 for confirmation.

So, if you want fog:

Download this file and replace the <path-to-your-LC-dir>\vc_weather.cfg with the one provided.


Latest script files:

Get them here!
The *.txt and *.scm files are to be placed into the \data dir, the audio file goes into \audio.

Features:
- all instances of text_pager have been replaced with text_box.
--> That means you can get rid of IIItoVC.asi to reduce the probability of a crash. The 'Common Problems' section of the H&Q topic has been updated accordingly.

- the bistro icon will now be disabled during 'Give Me Liberty' and 'Mike Lips' Last Lunch'.

- the bistro will have music playing in the background (taken from San Andreas), although it's almost unhearable at the moment.

- a bunch of small, imperceptible changes.


Visit this topic for all questions regarding the latest updates!

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#441

Posted 11 November 2007 - 06:21 PM

I've finally implemented a (quite complex) workaround for 3-6 (Claude pausing slightly during the GML/LG CS) - it should suffice, although it's far from perfect. No download at the moment.

Now I'm going to tackle the 03F8 (ominous bodycast opcode) workaround - this should be feasible if I can get 0339 (object in cube) to work properly.

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004

#442

Posted 11 November 2007 - 07:12 PM

Good luck with the workaround for 03F8. I thought about that one for a long time before giving up.

Luckily for everybody, you are a little more clever than I was. wink.gif

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#443

Posted 11 November 2007 - 08:15 PM Edited by SteaVor, 18 November 2007 - 08:26 PM.

In theory, I have it all laid out already - it's not that difficult, but definitely one of the most interesting coding issues I've come across yet. I'm just like my namesake PatrickW in this regard - I love solving difficult problems, and I like it even more to succeed.

As a side effect of my experiments I've found out that 0366 is neither object_blown_up nor object_damaged (as dubbed by PLPynton). It doesn't check the condition of an object, but returns true if the object has just been hit critically. The line in the code now reads "8366: NOT has_object $PB_BODY_CAST received_critical_damage".

I'm wondering why 03F8 only needs one parameter. One would think it needs at least a second parameter - the handle of the object it's referring to. What does it do if you create two #BODYCAST models at once?
-------------

The problem with theory is that reality has nothing to do with it most of the time. I've tried to perfect the part of the crane code that determines the height of the roof of a car, and I've tried to use 0339 (objects in cube) here as well, but I didn't get it to work properly.
I hope I'll get it to work for the 03F8 workaround - it's not as complex as the roof routine. There's no other way to perfect Plaster Blaster and the roof routine I can think of.

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

Regarding Plaster Blaster:
PB is FAR too easy at the moment because 0366 returns true as soon as the bodycast has been hit by one grenade/RPG/set of tires. tounge.gif I hope a simple modification of the damage multiplier in object.dat suffices to make it more durable. That doesn't work but I won't spend time researching and fixing that on it on my birthday (i.e. this sunday).

03F8 can definitely NOT be emulated through the opcodes available in VC, unless somebody has found a way to determine if an object has been hit by grenade/RPG. Luckily it's not THAT important: the effect is purely visual after all because the opcode is necessary for the damage bar only. The mission can still be passed just like it's supposed to (bodycast can be damaged by grenade/RPG/car - all of this is covered by 0366), except that it's far too easy at the moment.

SteaVor
  • SteaVor

    Professional investor

  • Members
  • Joined: 17 Dec 2005

#444

Posted 18 November 2007 - 08:32 PM Edited by SteaVor, 18 November 2007 - 08:37 PM.

Modifying the damage multiplier didn't work, I've scrapped this approach in favor of the most complex one I can think of:

I'm going to rewrite the complete check from scratch. That means I'll have full control over the 'damage' done to the object and the appropriate visualization through the damage bar - no need for fiddling with 0366 or 03F8.

As far as I'm aware I need to implement checks for
1) exploding grenades
2) exploding RPG missiles and
3) exploding cars in the vicinity of the bodycast and
4) tires of a moving car upon the bodycast.

1 and 2 are already implemented (thanks to Silence the Sneak colgate.gif ), 4 was the one that I'd already thought about all week. For 3 I've thought about a separate get_random_car_in_cube loop, but that cannot work because the 4 checks must be put into one huge, comprehensive loop.

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004

#445

Posted 26 March 2010 - 01:38 AM

Well I'm digging my way into Sayonara Salvatore again (for the bazillionth time seemingly). And it seems this isn't going to be easy for me. I started to go through the 4000+ lines of code renaming every label name (so the jumps are easier to follow). And after getting through roughly a quarter of the code I thought I had the idea for fixing the problem with the Mafia guys walking out to the street. However Sanny Builder crashed on me and I lost all of my renaming work. So if I want to go about renaming the labels I have to start over.

Anyway, as I was reading through the code, and I thought adding a delay to the time each ped was created would help. But the guys walk back into the club before the next guy comes out anyway. I either need to force them to walk towards the alley (possibly adding a new thread for each of the four Mafia guys who walk to the front) or there may be a problem with the path file. However, I understand very little of paths, but I have a hunch that's where the problem exists.

I will be very happy if I can get this mission working properly.

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004

#446

Posted 26 March 2010 - 03:47 AM

WOOHOO!

I have Sayonara Salvatore mostly working. All 6 Mafia guys correctly walk to their final spots and stay there. I also fixed the jumpy camera when the cutscene plays. There's only two more things I may have to fix before it's done. First, the 4 Mafia guys on the street see you and shoot you if you're on the roof across the street. To my memory you could hide up there in GTA3 until Salvatore walked out calmly and pick him off with the sniper. And secondly, I'm not sure if Salvatore walks out to the street properly. I have to test it more. But knowing what I know now about that mission, I'm confident I can fix both problems.

To fix the walking to the street problem I took this code:
CODE
:LabelLC05B839
00D6: if  0
0038:   $SS_MAFIA11_POSITION ==  1  // integer values
004D: jump_if_false @LabelLC05B87B
00D6: if  0
00ED:   actor $ASUKA1_MAFIA11  0 ()near_point_on_foot $SS_CP1_X $SS_CP1_Y radius  1.0  1.0
004D: jump_if_false @LabelLC05B87B
0211: actor $ASUKA1_MAFIA11 walk_to $SS_M09_END_X $SS_M09_END_Y
0004: $SS_MAFIA11_POSITION =  2  // integer values

:LabelLC05B87B
00D6: if  0
0038:   $SS_MAFIA11_POSITION ==  2  // integer values
004D: jump_if_false @LabelLC05B8BF
00D6: if  0
00F0:   actor $ASUKA1_MAFIA11 stopped  0 ()near_point_on_foot $SS_M09_END_X $SS_M09_END_Y radius  .5  .5
004D: jump_if_false @LabelLC05B8BF
0173: set_actor $ASUKA1_MAFIA11 z_angle_to  0.0
009F: set_actor $ASUKA1_MAFIA11 objective_to-1
0004: $SS_MAFIA11_POSITION =  3  // integer values

And changed it to this:
CODE
:LabelLC05B839
00D6: if  0
0038:   $SS_MAFIA11_POSITION ==  1  // integer values
004D: jump_if_false @LabelLC05B87B
00D6: if  0
00ED:   actor $ASUKA1_MAFIA11  0 ()near_point_on_foot $SS_CP1_X $SS_CP1_Y radius  1.0  1.0
004D: jump_if_false @LabelLC05B87B
0211: actor $ASUKA1_MAFIA11 walk_to $SS_CP2_X $SS_CP2_Y
//0211: actor $ASUKA1_MAFIA11 walk_to $SS_M09_END_X $SS_M09_END_Y
0004: $SS_MAFIA11_POSITION =  2  // integer values

:LabelLC05B87B
00D6: if  0
0038:   $SS_MAFIA11_POSITION ==  2  // integer values
004D: jump_if_false @LabelLC05B8BF

00D6: if  0
00ED:   actor $ASUKA1_MAFIA11  0 ()near_point_on_foot $SS_CP2_X $SS_CP2_Y radius  1.0  1.0
004D: jump_if_false @LabelLC05B8BF
0211: actor $ASUKA1_MAFIA11 walk_to $SS_M09_END_X $SS_M09_END_Y

00D6: if  0
00F0:   actor $ASUKA1_MAFIA11 stopped  0 ()near_point_on_foot $SS_M09_END_X $SS_M09_END_Y radius  .5  .5
004D: jump_if_false @LabelLC05B8BF
0173: set_actor $ASUKA1_MAFIA11 z_angle_to  0.0
009F: set_actor $ASUKA1_MAFIA11 objective_to-1
0004: $SS_MAFIA11_POSITION =  3  // integer values

I had to do that for $ASUKA1_MAFIA11 - $ASUKA1_MAFIA14

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004

#447

Posted 27 March 2010 - 07:01 PM

Maybe this will be a little more tricky than I thought. While the Mafia guys walk out properly, the timing of Salvatore coming out needs work, as does all of his possible escapes. Also, the Mafia guys see you if you're on the rooftops (they're not supposed to) so I have to figure that out too.

I will keep plugging away at this mission. Since I'm going it alone here, it may take a bit. I'd appreciate the input of any other scm coders. Also this whole thing may be solved by altering the paths file. I tried, but could not figure it out.

Once this mission and Plaster Blaster are figured out, I think that the scm file can be considered 99.99% finished, and that's good enough. Plaster Blaster needs some exe hacking to work perfectly. It sort of works now.

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003

#448

Posted 12 April 2010 - 01:24 AM Edited by spaceeinstein, 12 April 2010 - 01:31 AM.

Wall of code to replace. This will make the mission "A Drop in the Ocean" more authentic to GTA 3. I hope I didn't mess anything up. The most noticeable change is that the pickup now bobs up and down with the water. Now the next step is to replace the object with the one from GTA 3.

Between
CODE
004D: jump_if_false @LabelLC07A3E6

and
CODE
004D: jump_if_false @LabelLC07A7CD


Replace with
CODE
004D: jump_if_false @LabelLC07A3E6
0213: $LC13688 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE1MARKER = create_marker_above_pickup $LC13688
0165: set marker $PACKAGE1MARKER color to 2
0086: $LC13772 = $LC13760  // floating-point values only
0086: $LC13776 = $LC13764  // floating-point values only
0004: $LC13732 = 1  // integer values

:LabelLC07A3E6
00D6: if  
0038:   $LC13724 == 1  // integer values
004D: jump_if_false @LabelLC07A41D
0213: $LC13692 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE2MARKER = create_marker_above_pickup $LC13692
0165: set marker $PACKAGE2MARKER color to 2
0086: $LC13780 = $LC13760  // floating-point values only
0086: $LC13784 = $LC13764  // floating-point values only
0004: $LC13736 = 1  // integer values

:LabelLC07A41D
00D6: if  
0038:   $LC13724 == 2  // integer values
004D: jump_if_false @LabelLC07A454
0213: $LC13696 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE3MARKER = create_marker_above_pickup $LC13696
0165: set marker $PACKAGE3MARKER color to 2
0086: $LC13788 = $LC13760  // floating-point values only
0086: $LC13792 = $LC13764  // floating-point values only
0004: $LC13740 = 1  // integer values

:LabelLC07A454
00D6: if  
0038:   $LC13724 == 3  // integer values
004D: jump_if_false @LabelLC07A48B
0213: $LC13700 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE4MARKER = create_marker_above_pickup $LC13700
0165: set marker $PACKAGE4MARKER color to 2
0086: $LC13796 = $LC13760  // floating-point values only
0086: $LC13800 = $LC13764  // floating-point values only
0004: $LC13744 = 1  // integer values

:LabelLC07A48B
00D6: if  
0038:   $LC13724 == 4  // integer values
004D: jump_if_false @LabelLC07A4C2
0213: $LC13704 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE5MARKER = create_marker_above_pickup $LC13704
0165: set marker $PACKAGE5MARKER color to 2
0086: $LC13804 = $LC13760  // floating-point values only
0086: $LC13808 = $LC13764  // floating-point values only
0004: $LC13748 = 1  // integer values

:LabelLC07A4C2
00D6: if  
0038:   $LC13724 == 5  // integer values
004D: jump_if_false @LabelLC07A4F9
0213: $LC13708 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768
03DC: $PACKAGE6MARKER = create_marker_above_pickup $LC13708
0165: set marker $PACKAGE6MARKER color to 2
0086: $LC13812 = $LC13760  // floating-point values only
0086: $LC13816 = $LC13764  // floating-point values only
0004: $LC13752 = 1  // integer values

:LabelLC07A4F9
0008: $LC13724 += 1  // integer values

:LabelLC07A500
00D6: if and
0018:   $LC13732 > 0  // integer values
001A:   6 > $LC13756  // integer values
004D: jump_if_false @LabelLC07A52B
01E5: text_1number_highpriority 'LOVE3_3' $LC13724 5000 ms 1   // ~g~The plane has dropped ~1~ of 6 packages.

:LabelLC07A52B
00D6: if  
0038:   $LC13732 == 1  // integer values
004D: jump_if_false @LabelLC07A59F
00D6: if  
0214:   pickup $LC13688 picked_up
004D: jump_if_false @LabelLC07A59F
0164: disable_marker $PACKAGE1MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A589
03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:
0004: $LC13672 = 1  // integer values

:LabelLC07A589
0008: $LC13684 += 1  // integer values
010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684
0004: $LC13732 = 2  // integer values

:LabelLC07A59F
00D6: if  
0038:   $LC13736 == 1  // integer values
004D: jump_if_false @LabelLC07A613
00D6: if  
0214:   pickup $LC13692 picked_up
004D: jump_if_false @LabelLC07A613
0164: disable_marker $PACKAGE2MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A5FD
03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:
0004: $LC13672 = 1  // integer values

:LabelLC07A5FD
0008: $LC13684 += 1  // integer values
010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684
0004: $LC13736 = 2  // integer values

:LabelLC07A613
00D6: if  
0038:   $LC13740 == 1  // integer values
004D: jump_if_false @LabelLC07A687
00D6: if  
0214:   pickup $LC13696 picked_up
004D: jump_if_false @LabelLC07A687
0164: disable_marker $PACKAGE3MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A671
03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:
0004: $LC13672 = 1  // integer values

:LabelLC07A671
0008: $LC13684 += 1  // integer values
010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684
0004: $LC13740 = 2  // integer values

:LabelLC07A687
00D6: if  
0038:   $LC13744 == 1  // integer values
004D: jump_if_false @LabelLC07A6FB
00D6: if  
0214:   pickup $LC13700 picked_up
004D: jump_if_false @LabelLC07A6FB
0164: disable_marker $PACKAGE4MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A6E5
03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:
0004: $LC13672 = 1  // integer values

:LabelLC07A6E5
0008: $LC13684 += 1  // integer values
010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684
0004: $LC13744 = 2  // integer values

:LabelLC07A6FB
00D6: if  
0038:   $LC13748 == 1  // integer values
004D: jump_if_false @LabelLC07A76F
00D6: if  
0214:   pickup $LC13704 picked_up
004D: jump_if_false @LabelLC07A76F
0164: disable_marker $PACKAGE5MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A759
03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:
0004: $LC13672 = 1  // integer values

:LabelLC07A759
0008: $LC13684 += 1  // integer values
010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684
0004: $LC13748 = 2  // integer values

:LabelLC07A76F
00D6: if  
0038:   $LC13752 == 1  // integer values
004D: jump_if_false @LabelLC07A7E3
00D6: if  
0214:   pickup $LC13708 picked_up
004D: jump_if_false @LabelLC07A7E3
0164: disable_marker $PACKAGE6MARKER
018C: play_sound 82 at 0.0 0.0 0.0
0008: $LC13756 += 1  // integer values
00D6: if  
0038:   $LC13672 == 0  // integer values
004D: jump_if_false @LabelLC07A7CD


Find the comment
CODE
TODO - These values were not changed. They MAY need to be.

and safely remove the comment (not the code). That section just controls the camera based on the position of the Panlantic van. It doesn't depend on the world coordinates so nothing needs to be changed.

Craig Kostelecky
  • Craig Kostelecky

    GTA:LC Team Leader

  • The Connection
  • Joined: 28 Jan 2004

#449

Posted 12 April 2010 - 02:58 AM Edited by Craig Kostelecky, 12 April 2010 - 05:10 AM.

Nice job space. I've replaced that code and it seems to work fine. I even failed it by the police getting to a package first. And I'm not sure if that happened with the old code (I never attempted it and I haven't read the old code that closely either)

Do you know if we're able to replace that model with a full-winged Dodo with everything we currently have?

EDIT: I think I have Sayonara Salvatore done! The Mafia guys and Sal all walk to the street properly. The timing is very close to GTA3. Also Salvatore will enter the car and drive away if he's not sniped first. There may be a few minor bugs, but I think it's close enough. I've been trying to get that mission working now for over five years (not straight of course). Finally, it's done! biggrin.gif monocle.gif

You can try it (as well as space's new code for A Drop in the Ocean) here.

Now my next step is to take the last code from SteaVor's updates, install them on my computer and integrate my changes to it. Then test the hell out of it. The scm is now much closer to being "done" than ever before.

spaceeinstein
  • spaceeinstein

    巧克力

  • Members
  • Joined: 17 Jul 2003

#450

Posted 13 April 2010 - 04:21 PM Edited by spaceeinstein, 13 April 2010 - 04:23 PM.

Here's a fix for Blow Fish that will make the explosion biblical again.

Between
CODE
004D: jump_if_false @LabelLC047B3E

and
CODE
0107: $LC7948 = create_object #FISH01 at 647.0 -1103.75 26.375


Replace with
CODE
004D: jump_if_false @LabelLC047B3E
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC048241

:LabelLC047B3E
0050: gosub @LabelLC048343
0050: gosub @LabelLC048587
00AA: store_car $BLOWFISH_GARBAGE_TRUCK position_to $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z
00D6: if  
00DC:   player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK
004D: jump_if_false @LabelLC047BA0
00D6: if  
0038:   $LC7896 == 1  // integer values
004D: jump_if_false @LabelLC047BA0
018A: $LC7876 = create_checkpoint_at 630.0 -1117.0 -100.0
0004: $LC40 = 1  // integer values
0164: disable_marker $TONI5_GARBAGE_TRUCK_MARKER
0004: $LC7896 = 0  // integer values

:LabelLC047BA0
00D6: if  
80DC:   not player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK
004D: jump_if_false @LabelLC047BEF
00D6: if  
0038:   $LC7896 == 0  // integer values
004D: jump_if_false @LabelLC047BEF
0186: $TONI5_GARBAGE_TRUCK_MARKER = create_marker_above_car $BLOWFISH_GARBAGE_TRUCK
0165: set marker $TONI5_GARBAGE_TRUCK_MARKER color to  0
0004: $LC40 = 0  // integer values
0164: disable_marker $LC7876
00BC: text_highpriority 'IN_VEH' 5000 ms 1  // ~g~Hey! Get back in the vehicle!
0004: $LC7896 = 1  // integer values

:LabelLC047BEF
00D6: if and
8185:   not car $BLOWFISH_GARBAGE_TRUCK health >= 900
80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0
004D: jump_if_false @LabelLC047C49
020B: explode_car $BLOWFISH_GARBAGE_TRUCK
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC048241

:LabelLC047C49
00D6: if and
0038:   $TONI5_TIMER == 0  // integer values
80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0
004D: jump_if_false @LabelLC047CA2
020B: explode_car $BLOWFISH_GARBAGE_TRUCK
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC048241

:LabelLC047CA2
0002: jump @LabelLC047ADC

:LabelLC047CA9
0247: request_model #FSHFCTRY_DSTRYD
00BC: text_highpriority 'JM1_3' 5000 ms 2  // ~g~Activate the car bomb then get out of there!
01B5: force_weather 0
00D6: if  
0119:   car $BLOWFISH_GARBAGE_TRUCK wrecked
004D: jump_if_false @LabelLC047CE7
00BC: text_highpriority 'WRECKED' 5000 ms 1  // ~r~The vehicle is wrecked!
0002: jump @LabelLC048241

:LabelLC047CE7
//00D6: if                                                                      //TODO possibly enable this
//8356:   not explosion_type 3 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0  //But it works with it commented out for now
//004D: jump_if_false @LabelLC047E3D                                            
0001: wait 0 ms
00D6: if  
0119:   car $BLOWFISH_GARBAGE_TRUCK wrecked
004D: jump_if_false @LabelLC047D45
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC047E3D

:LabelLC047D45
0050: gosub @LabelLC048343
0050: gosub @LabelLC048587
00AA: store_car $BLOWFISH_GARBAGE_TRUCK position_to $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z
00D6: if  
80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0
004D: jump_if_false @LabelLC047D8C
0002: jump @LabelLC047AC1

:LabelLC047D8C
00D6: if and
80DC:   not player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK
8228:   not car $BLOWFISH_GARBAGE_TRUCK bomb_status == 4  
004D: jump_if_false @LabelLC047DB5
00BC: text_highpriority 'JM1_5' 5000 ms 1  // ~g~The car bomb's not set!

:LabelLC047DB5
00D6: if  
8185:   not car $BLOWFISH_GARBAGE_TRUCK health >= 900
004D: jump_if_false @LabelLC047DF6
020B: explode_car $BLOWFISH_GARBAGE_TRUCK
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC047E3D

:LabelLC047DF6
00D6: if  
0038:   $TONI5_TIMER == 0  // integer values
004D: jump_if_false @LabelLC047E36
020B: explode_car $BLOWFISH_GARBAGE_TRUCK
039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0
0002: jump @LabelLC047E3D

:LabelLC047E36
0002: jump @LabelLC047CE7

:LabelLC047E3D
014F: stop_timer $TONI5_TIMER
01B4: set_player $PLAYER_CHAR frozen_state 0 (frozen)  
02A3: toggle_widescreen 1 (on)  
01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 1 (true)  
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 (true)  
015F: set_camera_position 605.25 -1136.75 22.5 0.0 0.0 0.0
0160: point_camera 606.062 -1136.12 22.5 2
0164: disable_marker $TONI5_GARBAGE_TRUCK_MARKER
0164: disable_marker $LC7876
0001: wait 300 ms
0003: shake_camera 300
020C: create_explosion_with_radius 6 at 630.75 -1111.88 21.5
02CF: $LC7912 = create_fire_at 631.0 -1111.75 19.75
020C: create_explosion_with_radius 6 at 631.0 -1123.0 21.375
0001: wait 600 ms
0003: shake_camera 400
020C: create_explosion_with_radius 6 at 635.0 -1119.0 22.0
0001: wait 300 ms
0003: shake_camera 300
020C: create_explosion_with_radius 6 at 650.0 -1119.0 20.0
0001: wait 400 ms
0003: shake_camera 400
020C: create_explosion_with_radius 6 at 650.0 -1120.0 26.0
0001: wait 200 ms
0003: shake_camera 300
015F: set_camera_position 625.5 -1094.0 27.0625 0.0 0.0 0.0
0160: point_camera 626.188 -1094.6899 26.75 2
020C: create_explosion_with_radius 6 at 634.188 -1104.0 24.25
0001: wait 300 ms
0003: shake_camera 400
020C: create_explosion_with_radius 6 at 633.375 -1119.1899 23.375
0001: wait 200 ms
0003: shake_camera 300
020C: create_explosion_with_radius 6 at 644.375 -1103.88 24.875
0001: wait 300 ms
0003: shake_camera 400
020C: create_explosion_with_radius 6 at 641.0 -1108.25 27.375
0001: wait 300 ms
0003: shake_camera 300
039D: scatter_particles 17 5.0 0 0 0 5000 at 634.75 -1104.88 24.6875 0.0 0.0 0.0
020C: create_explosion_with_radius 6 at 637.688 -1102.1899 24.5
020C: create_explosion_with_radius 6 at 651.25 -1103.38 20.6875
0107: $LC7932 = create_object #FISH01 at 637.688 -1103.5601 26.5625
0107: $LC7936 = create_object #FISH01 at 637.688 -1103.1899 26.5625
0107: $LC7940 = create_object #FISH01 at 643.75 -1107.1899 27.5625
0107: $LC7944 = create_object #FISH01 at 644.75 -1105.1899 27.5625
0392: object $LC7932 toggle_in_moving_list 1
0392: object $LC7936 toggle_in_moving_list 1
0392: object $LC7940 toggle_in_moving_list 1
0392: object $LC7944 toggle_in_moving_list 1
0381: throw_object $LC7932 distance -10.0 6.0 18.0
0381: throw_object $LC7936 distance 8.0 7.0 16.0
0381: throw_object $LC7940 distance -7.0 10.0 14.0
0381: throw_object $LC7944 distance 9.0 6.0 15.0
018C: play_sound 0 at 634.75 -1104.88 24.6875
0001: wait 400 ms
0003: shake_camera 500
039D: scatter_particles 17 5.0 0 0 0 5000 at 639.188 -1129.75 25.5 0.0 0.0 0.0
020C: create_explosion_with_radius 6 at 647.0 -1102.75 23.375
020C: create_explosion_with_radius 6 at 638.562 -1128.75 25.5625
0107: $LC7948 = create_object #FISH01 at 647.0 -1103.75 26.375




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users