Towncivilian

GTA3:MTA Development Thread

Recommended Posts

As with MTA: Vice City, I've begun improving all three islands of GTA3:MTA. GTA3:MTA was left in a relatively complete, but unpolished state, so there's not as much to work on compared to MTA:VC. Progress is significantly faster in comparison to MTA:VC, due to a combination of experience (I started MTA:VC as a complete newbie to SCM), knowing what to look for, and somewhat better sources to work with. Here's a changelog thus far:

  • GTA3:MTA Changes:
  • Turismo/Shoreside Scramble race gamemodes fixed.
  • GTA continues to execute in the pause menu, no more lame pausers during deathmatch!
  • Implemented a check for players being dead inside vehicles.
  • All islands now check if you left your current island and deal with you properly.
  • Replay disabled to prevent desync.
  • Players no longer earn money upon hitting other vehicles or entering a taxi.
  • Trains disabled to prevent crashes.
  • Drive-by disabled since it's unsynced, no point in wasting ammo.
  • Pay'n'Spray blips added, and removed all non-Pay'n'Spray garages.
    Vehicle 49 (the teal Esperanto on Portland, some Kuruma on Staunton [sorry for not being specific], and the Taxi near the Police Station on SSV) is not synced on any island. It has been moved to an inaccessible location.
  • Made carscanner faster.
  • If a player killed themselves while in the Ammunation screen, the player is teleported out of the Ammunation screen and the menu is deactivated so the player can be respawned properly. Previously, if a player did this and tried to buy a Race or some weapon, the game would crash.
  • Fixed minor text fade-in issue in the Ammunation menu.
  • Wanted stars moved off-screen. screenshot
  • Weapon pickup message box moved out of the way of the chatbox for readability.
  • Fixed many vehicle placements so vehicles aren't parked on the wrong side of the road.
  • Time advance disabled after you die to prevent a minor visual bug.
  • Massive code optimizations.
    Portland:
  • Closed off various mission-related doors (for example, Luigi's club's back door).
    Shoreside Vale:
  • "Color bug" that has been plaguing this island for several versions is now massively reduced. This is also dependent on a server setting (server operators please read mtaserver.conf at RandomWeather)
  • Player can no longer "superjump" if the player is not controllable (i.e. player is drowning, knocked down, or jumped already).
  • Blips added for your current gang's Ammunation as well as the universal Ammunation near the Pay'n'Spray, and added the gamemode selection location on the radar as a green telephone when using the car scanner.
  • Fixed glitch where if you are in the gamemode selection screen and another player begins a gamemode, you are trapped in the gamemode selection screen and must restart GTA3:MTA.
  • Fixed glitch where players could spawn without a weapon of their choosing if they tried to spawn too quickly.
  • Your $50 is refunded if you back out of the gamemode selection screen after buying a Taxi from Ammunation.
  • Fixed many crashes and bugs in Van Heist and Ransack gamemodes.
  • Closed off front airport building doors and added Hoods safehouse door as it appears in SP (open at an angle).
    Staunton:
  • Pay'n'Spray enabled.
  • Closed safehouse doors.
    american.gxt (text table used by MTA & GTA):
  • Fixed a lot of wording to improve clarity and fix several typos.
  • Added text that strongly suggests to not use the "start game" option after already beginning a game (i.e. restart game) as this usually crashes the game, and instead suggests to quit and start the game again if you really need to restart.
  • Added text that dissuades people trying to load a save game in MTA.
  • Other minor tweaks.

Share this post


Link to post

How about making 2 types of maps for portland and staunton: DM and TDM with additional weapons (like SSV class selection)? That would be uber cool and i bet most of players would love it :). Portland is a great island, but its missing one important thing: gangs. Adding dodo on staunton would be nice too.

There are some buggs on SSV like:

- spawning on the yakuzas ammunation roof,

- if you'll press enter too fast (before weapon appears in the class selection) you wont get selected weapon,

- one taxi is desynced (probably by SCM),

- sometimes vehicles are drowning (not exploding),

- when you'll get a taxi in ammunation, you can't "quit" it,

- cops are spawned in closest coords to the POLICE car.

Thats all what I can remember now.

Good luck :).

Share this post


Link to post
How about making 2 types of maps for portland and staunton: DM and TDM with additional weapons (like SSV class selection)? That would be uber cool and i bet most of players would love it :). Portland is a great island, but its missing one important thing: gangs. Adding dodo on staunton would be nice too.

There are some buggs on SSV like:

- spawning on the yakuzas ammunation roof,

- if you'll press enter too fast (before weapon appears in the class selection) you wont get selected weapon,

- one taxi is desynced (probably by SCM),

- sometimes vehicles are drowning (not exploding),

- when you'll get a taxi in ammunation, you can't "quit" it,

- cops are spawned in closest coords to the POLICE car.

Thats all what I can remember now.

Good luck :).

I can do that for Portland. It would likely be similar to VC's spawn menu, not randomized as SSV is (as that requires getting many coordinates, but the coords might be in a file used by GTA3 somewhere). Not sure about additional weapons as I don't know which weapons are synced. I shall look into it. That's a great idea, I'm sure many players are tired of the same old island setups.

In order to add Dodo(s) to Staunton, I must replace a current vehicle. If you can suggest a location and a vehicle to replace, I could place one.

Is spawning on the Ammunation roof reproducible, or simply random? If it's random I probably can't do anything about it.

Pressing enter too fast might just be related to slowness of a timer somewhere, I'll look into it.

If you can tell me which taxi is desynced I will first make sure all proper code is existing in the SCM; if it is and it's still desynced I'll move it inside the spawn building so it's inaccessible. I'd also have to make sure the same vehicle number is synced on the other islands.

Vehicles just floating in water rather than exploding? Any specific ones, or just random?

I'll try to reproduce that taxi thing in Ammunation. If it's caused by the player being frozen (i.e. all controls disabled) then it's an easy workaround.

I know cops are spawned near Police cars; it's set to randomize by 8 police vehicles which must have high health and are stopped. What's wrong with that?

Thanks for the reply.

Share this post


Link to post
I can do that for Portland. It would likely be similar to VC's spawn menu, not randomized as SSV is (as that requires getting many coordinates, but the coords might be in a file used by GTA3 somewhere). Not sure about additional weapons as I don't know which weapons are synced. I shall look into it. That's a great idea, I'm sure many players are tired of the same old island setups.

Aren't players on SSV spawned with function like "GetClosestPath" or something like this? Synced weapons are:

- shotty :),

- colt 45,

- uzi,

- ak,

- flamethower (but players donesnt like it).

In order to add Dodo(s) to Staunton, I must replace a current vehicle. If you can suggest a location and a vehicle to replace, I could place one.

We can find something.

Is spawning on the Ammunation roof reproducible, or simply random? If it's random I probably can't do anything about it.

It's random.

If you can tell me which taxi is desynced I will first make sure all proper code is existing in the SCM; if it is and it's still desynced I'll move it inside the spawn building so it's inaccessible.

Join that [LCK] server and I'll show you. Better way would be deleting that taxi (if your mod wont help).

Vehicles just floating in water rather than exploding? Any specific ones, or just random?

I think its random, but mostly dodos ;).

I'll try to reproduce that taxi thing in Ammunation. If it's caused by the player being frozen (i.e. all controls disabled) then it's an easy workaround.

Its not a bug, but if you'll buy accidentally a taxi, you must teleport and can't quit it.

I know cops are spawned near Police cars; it's set to randomize by 8 police vehicles which must have high health and are stopped. What's wrong with that?

Thanks for the reply.

A small "glitch". I can show you it later.

Share this post


Link to post

Players on all three islands are spawned within specified cubes, at points (called nodes) where pedestrians in single-player spawn. The SCM picks random coords within a cube, gets the nearest ped node near those points, and spawns the player at that node. For Cops on SSV, a random number from 18 to 24 is picked, and then the SCM jumps to a specific portion of code specified to one of the police vehicles. The SCM checks if the vehicle is stopped and has health > 7900 (maximum in MTA is 8000, explosion point is about 7200); if that check fails then the game randomizes the spawn again. The SCM then gets the vehicle's coordinates, adds 5.0 to its X value, and spawns the player at those coordinates. When a player leaves their island, they are teleported back to their original spawn point after 10 seconds, and if they are in a vehicle, the vehicle's health is set to 7200 (so it will explode), the player is frozen, removed from car, and teleported back to spawn after 10 seconds. This island check is now present on all three islands, and is more accurate than the previous implementations; it is only triggered if the game loads another island rather than checking if a player is in a specified cube as the Portland and Staunton checks did.

Spawning on the roof of the Ammunation is probably just a glitch when certain parts of the map have not loaded completely or something. Probably not fixable.

The taxi desynced is vehicle 49 (sounds like vehicle 80 from VC all over again). Need to make sure it's synced on the other islands; if it is, it's related to SSV's SCM; if it's not synced on *any* island then I must remove the vehicle.

I will add an option to quit the submission selection screen in Ammunation (and refund the player, of course!).

To-do section updated.

Thanks.

Share this post


Link to post

It seems that vehicle 49 is unsynchronized on all three islands. I've moved it to an inaccessible location as a result (to another island, more specifically). Strange that the last vehicles spawned for both MTA:VC and GTA3:MTA are unsynced.

Adding the "quit" option to the gamemode selection screen has been a rather convoluted process as of yet. Have to figure out how to place another entry in the menu. Menus in MTA have always been pretty damn confusing in my opinion.

Once those two things are done I'll start cleaning up the gamemodes and attempt to fix Turismo on Portland, then fix vehicle placements (some are too far on the sidewalk, have poor z-angles, etc) and do the american.gxt crap. After that I'll look into creating a team deathmatch based Portland, and maybe look into creating some gamemode(s) for Staunton, maybe Capture the Whoopee or something.

I've also been updating the MTA 0.5 and Historical sections on the Wiki. There is very little traffic in those sections though, so it's not really paramount for me to finish at this time. Just have to add some pages for Staunton and SSV, and maybe some technical information about the MTA 0.x core and history.

Share this post


Link to post

Nice job! I can't wait until it's released!

By the way:

Just have to add some pages for Staunton and SSV...

Should be Portland and Staunton*. :)

Share this post


Link to post

Sorry for the bump, but email me TC and I'll send you my [incomplete] location fix for the Portland vehicles.

Share this post


Link to post
Sorry for the bump, but email me TC and I'll send you my [incomplete] location fix for the Portland vehicles.

Why don't you email me or something? You could've PMed me instead of posting here. Whatever, email sent.

EDIT: Fixed Turismo in Portland. While testing, I also noticed that if while typing you press "G" (which is the new passenger key), you enter a vehicle as a passenger if you're close enough. This is bad. Might need to revert to "V" for passenger.

Anybody want a Dodo Duel gamemode? Or Capture The Whoopee?

Share this post


Link to post
Anybody want a Dodo Duel gamemode? Or Capture The Whoopee?

Not sure what a dodo duel gamemode would require as it worked fine without scripts. The only thing I can think of is a score system, where players are awarded a point for killing someone with their dodo (but finding this out accurately might be a problem). As for the game mechanics, the players can spawn closer to the duel and have weapons, but I think this would remove the GTA feel and make it too easy to get back in the game after being killed.

A ctw mode could definitely benefit from a script, but I think SSV already has a similar gamemode where you steal gang cars.

The gamemode I'd like to see most would be race, just like in MTA 0.4.1.

I'm curious to know the extent of what you can do by modifying the scm. I thought you could do client-side things like replacing vehicles but I didn't think you could synchronize anything between players?

edit: Also, I think the cop car spawning thing is a good feature/glitch, we used it a lot for various purposes.

Share this post


Link to post
@TC: Why is there a conflict with the G key?

CLEO interprets any key press of "G" to do the function (i.e. if chat window is open and you type "gg" then you'll try to enter a vehicle if there's one close enough) but that's MTA's fault I guess.

@erorr404: I know there isn't much to be scripted for DD, maybe things like boundaries for where gunners can stand and as you said, spawning closer to the play area. Score synchronization would have to be done through MTAClient.

You are correct in that SSV has "steal the car" or whatever it's called, but CTW could be slightly different (i.e. be spread between two islands) or something. I have some SCM from 2003 that is a form of Capture The Whoopee, but I am missing the correct GXT so all the text to tell me what to do is random text from single player. It involved going to Staunton from Portland and finding the Whoopee at the top level of a parking garage, then something with race-esque checkpoints. Attempting to complete this checkpoint thing resulted in a crash of the game.

What do you mean by "race" as in MTA 0.4.1? All three islands have working race ("Turismo") submissions.

There's no way of synchronizing things through SCM. It's purely client-side stuff. I'm open to other game-mode ideas, though! I haven't forgotten about a "team deathmatch" type version of Portland and will look into it after finishing the small remaining issues for the other SCMs.

Share this post


Link to post

I'm still not sure to what the exact issue you are referring to is in speaking about the "g" key. Does the Turismo mission ask you to press it to start the race?

Share this post


Link to post
I'm still not sure to what the exact issue you are referring to is in speaking about the "g" key. Does the Turismo mission ask you to press it to start the race?

Share this post


Link to post

All the keys have that issue when typing in 0.5's chat. If you press the shift button while typing, the horn honks too. It's a bug in the chat system. It affects VC as well.

Share this post


Link to post
All the keys have that issue when typing in 0.5's chat. If you press the shift button while typing, the horn honks too. It's a bug in the chat system. It affects VC as well.

I tried "F" and it didn't do anything, and I never encountered the issue on MTA:VC.

Share this post


Link to post

The infamous "color bug" that plagues SSV is related to the SCM. By driving around a while in single-player GTA3 with MTA's SSV SCM loaded instead of GTA3's original one, the color bug quickly appeared, thus ruling out MTA's DX hook and MTA altogether. It's strange that neither of the other two SCMs have this glitch. I haven't a clue what might be causing this as all SCMs have the same basic layout, except SSV has a spawn menu and thus a somewhat different initialization method upon entering the game.

trx said that he was unable to fix the issue without drastically reducing the number of vehicles. That might seem plausible, but remember that Portland and Staunton are both unaffected. He also said that reducing the number of actors might fix it, but it doesn't make sense that the issue appears in SP without any other active actors.

Was this color bug always present in SSV, or was some older version unaffected? Maybe it's pointless to be asking you guys, and I should probably be asking trx instead. He's been the most help yet out of anybody from the MTA team who have worked on 0.x, and considering he's not even active around here anymore, that really says something.

I'll have to track down the memory addresses to disable drive-by (the SCM opcode doesn't work in GTA3, only VC and SA) and the money received upon entering a Taxi vehicle for GTA3.

EDIT: I seem to have made the color bug happen less frequently at least in my experience. It's hard to establish a baseline for this bug, so maybe it's a placebo effect.

Fixed that issue where your $50 wouldn't get refunded if you backed out of the gamemode selection screen after buying a Taxi from Ammunation. Here's a funny blooper.

Added blips for Ammunation and gamemode selection building near Cops spawn for SSV.

Testing with erorr404 earlier today revealed that Staunton's sync seems to be mostly broken. It's always a hassle to track the issue down when this happens. Also, Portland and Staunton's Turismo gamemode initiation is hit-or-miss, with other players sometimes not having the gamemode changed properly and are oblivious to an imminent race. There's also another bug on SSV where if a player is in the gamemode selection screen and another player begins a gamemode, the first player is stuck in the gamemode selection screen with no way out, even by suicide. I hate regressions.

EDIT2: Fixed glitch where if you are in the gamemode selection screen and another player begins a gamemode, you are trapped in the gamemode selection screen and must restart MTA3. That fix actually worked on the first try. I love it when that happens.

Share this post


Link to post

What others? Other islands? Portand and Staunton need a more reliable method of gamemode sync (other players don't see a race beginning usually) and vehicle position fixes, and I need to figure out what's up with Staunton disliking MTA:VC's car scanning code. SSV has had the most issues to fix since it's the most complex out of the three islands.

I'm trying to fix a bug where if you somehow die while in the Ammunation buying screen or gamemode selection screen then you're trapped in a hybrid menu of the buying/selection screen and the spawn menu. I'm having difficulty exiting the menu after death (text still shows up for Ammunation). Other than that, I'm wondering whether the GTA gamemode where you steal the Securicar is supposed to have the car explode for Cops (it didn't, despite saying there was a bomb timer) or whether it just explodes for every other gang. From the code it appears it should only explode for the other gangs, but I'll need to do some ingame testing.

And this was just weird.

Share this post


Link to post

Turns out the color bug was a ridiculously simple fix: forcing weather to be 0 (sunny). I'm not sure whether this will have any repercussions in MTA as server admins can set weather (and time, which may be related) through the Admin Panel, but weather in MTA3 has not been synced since <0.4, so it may be a moot point. While the color bug still may occur if a server admin changes the time and/or weather, it will most likely not occur nearly as frequently in general gameplay. Of course, this conclusion came from about 30-45 minutes of testing in single player just driving around and testing gamemodes trying to trigger the color bug and about 10 minutes of futzing around in MTA3 with another player and changing things in the Admin Panel. This may just be a bandaid solution to fix most instances of the bug, and syncing time and weather properly will likely fix the issue. I know I'm saying a lot of "maybes" and "perhaps" but I haven't tested this thoroughly yet, only reporting initial findings.

I suppose I can do some quick testing in Portland and Staunton and see if changing weather/time through Admin Panel triggers the color bug and if so, apply the fix, or just apply the fix regardless. There is one gamemode in SSV (internally it's called fight club, I don't remember what it's actually called ingame) that changes weather to foggy and back once you die or the gamemode ends, so I'll have to see if that will trigger the issue in SSV.

Other than that, fixed several issues with the Van Heist gamemode (Cop garage's marker appearing on top of the garage instead of inside, Cop having a bomb timer go off despite the Securicar not exploding once timer hits 0 [i chose to remove the timer and instead just display "objective complete" and reward the player, and have the player leave the car and walk out of the garage automatically while the car is being respawned out of the player's sight])

Still haven't fixed that issue with dying in Ammunation buy screen/gamemode selection screen, or fixed Portland/Staunton race start sync, but there's no rush.

EDIT: Fixed an issue in Ransack ("fight club") where when dying due to lack of oxygen or from standing in fire, you would see negative HP in the HUD. Also changed "weather" to "force_weather" opcodes to possibly prevent instances of the color bug.

Also updated changelog on first post.

Share this post


Link to post

Updates:

Generic SCM changes:

- If a player killed themselves while in the Ammunation screen, the player is teleported out of the Ammunation screen and the menu is deactivated so the player can be respawned properly. Previously, if a player did this and tried to buy a Race or some weapon, the game would crash.

american.gxt:

- Fixed a lot of wording to improve clarity and fix several typos.

- Added text that strongly suggests to not use the "start game" option after already beginning a game (i.e. restart game) as this usually crashes the game, and instead suggests to quit and start the game again if you really need to restart.

- Added text that dissuades people trying to load a save game in MTA.

- Other minor tweaks.

Seems to be nearing completion for the three original SCMs. All that remains is a bunch of tedious work (fixing vehicle positions, removing useless car color settings for emergency vehicles and textured vehicles (if any exist in GTA3; does anybody know?), remove most of the useless single-player related text in american.gxt, and a bit of memory address work).

Changelog on first post updated.

EDIT: Carcols and memory address work done. Replays, $25 earned from entering taxi vehicles, and money earned upon hitting other vehicles disabled through SCM for all 3 islands. Disabling trains will require a bit of MTAClient work (it seems that trains are loaded before the SCM begins executing, so the address must be set before pressing "start game" ingame).

Perhaps the most important bit of memory address work: enabled execution of SCM in the pause menu. This will likely solve many, many desync issues and players can no longer pause to avoid damage!

Share this post


Link to post

Amazing work man! I can't wait until this is completed! :D

Have you found any possible way yet of adding that experimental spectate mode like the one MTA:VC has?

Share this post


Link to post

Fixed the issue where Yakuza players would sometimes spawn outside atop the Ammunation building after exiting the Ammunation buying menu.

Also, upon further testing in MTA, the color bug is still relatively rampant despite lower occurrence in single player. Maybe it'll remain a mystery.

I noticed that the other two islands have the same issue with MTA:VC's car scanner code as Staunton does. I can probably fix it, but I don't think it's worth the effort or time as I'd most likely have to use pauses as the original code does, so I'll just use the original car scanner code.

I haven't even ran the work-in-progress "spectator mode" in single-player to observe its behavior. Even then, would a spectator mode really be utilized? Spectator mode in MTA:VC is quite crashy.

Share this post


Link to post

Ya, but Spectator Mode was used by administrator's for years in MTA:VC on servers to catch cheaters in the act. I can vouch for Argonath RPG and Ankeborg RPG on that for sure. If it can be made working with little work, it'd be a nice addition. :)

Share this post


Link to post

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

  • Recently Browsing   0 members

    No registered users viewing this page.