Category: Development


VC:MP Plugins: a full disclosure

In preparation for upcoming developments, the source code, binaries, issue lists, commit history, wikis, and all other development history for five plugins for VC:MP 0.4 are now being made available:

Traditionally, access to plugins has been restricted to members of the beta testing and development team. The development for these plugins is an ongoing process, but the code base is believed to be mature enough to be released to the public.

We hope that the availability of the code for these plugins will allow people to see what progress has been made on 0.4, what functionality is available, and how to similarly extend the functionality of the server by providing a full release such as this. Hopefully the open source nature of these plugins will also allow people to commit their own changes.

These plugins can be accessed either by clicking on their respective links or by viewing my Bitbucket profile.

Public Beta #3 coming January 26th

New features, stability and bugfixes, and further improvements have been made to the 0.4 client and server, allowing us to announce that Public Beta #3 will be held on January 26th! For more information, check out the associated forum thread:

http://forum.vicecitymultiplayer.com/index.php?topic=6506.0

Public Beta #2 coming August 6th

After ironing out bugs, crashes, and other issues that were found in Public Beta #1, the VC:MP team is proud to announce that Public Beta #2 will be held on August 6th! For more information, check the associated forum thread:

http://forum.vicecitymultiplayer.com/index.php?topic=6111.0

Interiors and first-person aim

We broke trainers

lol

Things that we did with VC:MP lately

  • Added windowed mode
  • Moved a few more interiors to world 0 to create one seamless world
  • Fixed a lot of bugs
  • Made plugins more stable

The ball is still rolling

Some of you may have noticed bakasan, one of our legacy VC:MP developers, and kenwood, our Lead Beta Tester, wandering the forum recently. They have confirmed to the beta team that they are back and going to return to some level of activity, which we believe will get the ball rolling on 0.4 once again. Right now, bakasan is getting caught up to speed with development and testing discussions.

With a developer and our lead tester around again, we’re currently determining a battle plan when it comes to the future of VC:MP. However, we cannot say whether there will definitely be a release or public test, and we cannot give a certain date for one yet. There are contingency plans being discussed in case bakasan disappears for any reason as well, so you can still be sure that the team will never give you up, let you down, run around, or desert you.

(no, this is not a joke)

We’re still alive

As you may or may not know, maxorator is in university. Of course that means that not only does he have to focus on his studies, but also that he has to deal with various exams like he is right now. The testing team wishes him the best of luck on his tests and we hope to get back to showing you more kickass stuff in the future.

When will 0.4 be released?

0.4 will be released when it’s ready, and after we’ve done extensive testing of our own. Please do not badger us about the release date. Would you rather have a super-awesome, super-stable multiplayer client, or a subpar one with terrible sync, frequent crashes, and few capabilities?

I personally think the choice is clear.

–stormeus

Changing vehicle handling

Several functions for changing vehicle handling data have been added for plugins and scripts to use. Handling can be set separately for a model index and a specific vehicle. Handling is managed as a set of rules, each of which replace the default value of some handling parameter for some model index or a specific vehicle. If both apply for some vehicle, then the rules for that specific vehicle are used. Superior grip, flying and driving on water can also be set with these functions. Next comes the list of functions. I will shortly explain what each of these functions does.

int ResetAllVehicleHandlings(void);
unsigned int ExistsHandlingRule(int nModelIndex, int nRuleIndex);
int SetHandlingRule(int nModelIndex, int nRuleIndex, double fValue);
double GetHandlingRule(int nModelIndex, int nRuleIndex);
int ResetHandlingRule(int nModelIndex, int nRuleIndex);
int ResetHandling(int nModelIndex);
unsigned int ExistsInstHandlingRule(int nVehicleId, int nRuleIndex);
int SetInstHandlingRule(int nVehicleId, int nRuleIndex, double fValue);
double GetInstHandlingRule(int nVehicleId, int nRuleIndex);
int ResetInstHandlingRule(int nVehicleId, int nRuleIndex);
int ResetInstHandling(int nVehicleId);

ResetAllVehicleHandlings resets all handling rules in the server. ResetHandling resets all handling rules that were set for a model index using SetHandlingRule. ResetInstHandling resets the rules that had been set for a vehicle using SetInstHandlingRule. ResetHandlingRule and ResetInstHandlingRule can be used to reset specific handling settings for a specific model index or vehicle.

ExistsHandlingRule will tell you if a specific handling setting has changed for this model using SetHandlingRule. ExistsInstHandlingRule does the same for specific vehicle instances.

GetHandlingRule will return the value that was set using SetHandlingRule or if hadn’t been changed, the default value for that model index. GetInstHandlingRule returns the value that was set for that specific vehicle or otherwise it simply calls GetHandlingRule internally. These functions always return the value that is currently effective for that model or vehicle index.

SetHandlingRule and SetInstHandlingRule are the functions that are used to actually apply new handling settings to vehicles. Note that only changed values are sent to clients, therefore it is best to keep changes as low as possible if you want to minimize bandwidth usage. Whenever you want to set a value to its original value, use the Reset* functions instead of using Set* functions with default value, since then those changes are basically deleted, causing the bandwidth usage to decrease.

These are the rule indices that can be used with those functions:

 1 Mass
 2 DimensionsX
 3 DimensionsY
 4 DimensionsZ
 5 CentreOfMassX
 6 CentreOfMassY
 7 CentreOfMassZ
 8 PercentSubmerged
 9 TractionMultiplier
10 TractionLoss
11 TractionBias
12 NumberOfGears
13 MaxSpeed
14 Acceleration
15 DriveType
16 EngineType
17 BrakeDeceleration
18 BrakeBias
19 SteeringLock
20 SuspensionForceLevel
21 SuspensionDampening
22 SeatOffset
23 DamageMultiplier
24 SuspensionUpperLimit
25 SuspensionLowerLimit
26 SuspensionBias
27 SuspensionAntiDive
28 Flags
29 LightsFront
30 LightsRear
31 SuperiorGrip
32 FlyingMode
33 DriveOnWater

Flying/boat/bike specific handling rules cannot be changed yet, but will likely be implemented as well.

–maxorator