Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - maxorator

#1
Some updates for 04rel004 have been incrementally coming in the last week, but I haven't yet documented them:

  • Files ending with _mem.nut or _mem.xml not saved to disk
  • Added Script.CompileString() and include() (dofile only once)
  • Ability to remove the whole default map by having store/maps/hidevicecity.txt file
  • If present store/maps/waterpro.dat is used instead of the default one
  • Support for object.dat definitions for custom objects
  • Support for custom carcols (store/vehicles/carcols.xml), starting at 100
  • Increased the limit of particle generators (nearly exhausted by default) from 70 to 250
  • Custom tree (1), traffic light (2) or fire hydrant (4) models (<special value="#num"/>)
  • LOD does not have to immediately follow the main object in XML anymore
  • Player render distance increased (only Tommy was seen from far away previously)
  • Fixed GUI 3D properties not usable because they start with a number (3DSize -> Size3D etc)
  • Fixed custom chainsaw sound
  • Fixed a crash related to custom object collisions
  • Fixed a crash when custom vehicle parts were lying around on disconnect
  • Fixed empty files in store crashing the client
  • Checkpoint entry/exit works using vehicle/player collisions now instead of distance check
  • Support for custom timecyc.dat (goes to store/maps/timecyc.dat)

Sample fire hydrant XML:
[spoiler]    <object id="214">
        <flags value="0"/>
        <texture path="dynhydrent.txd"/>
        <collision path="generic.col" name="fire_hydrant"/>
        <model path="fire_hydrant.dff" distance="40.000000"/>
        <special value="4"/>
        <physics>
            <mass>150.000000</mass>
            <turnmass>50.000000</turnmass>
            <airresistance>0.990000</airresistance>
            <elasticity>0.030000</elasticity>
            <percentsubmerged>50.000000</percentsubmerged>
            <uprootlimit>100.000000</uprootlimit>
            <damagemultiplier>1.000000</damagemultiplier>
            <collisioneffect>1</collisioneffect>
            <collisionresponse>0</collisionresponse>
            <cameraavoids>false</cameraavoids>
        </physics>
    </object>
[/spoiler]

Sample carcols XML:
[spoiler]<?xml version="1.0" encoding="ASCII"?>
<carcols>
    <colour id="0" r="30" g="30" b="30"/>
    <colour id="1" r="250" g="140" b="140"/>
</carcols>
[/spoiler]
#2
A major update has been released for VC:MP. This version brings new features that require both the server and client to be updated for it to work, so the version is bumped to 04rel004.

Server Owners: Server and plugin updates can be found in this thread.



Client Update 04rel004
  • Added client-side GUIs and scripting. The client now has a Squirrel core for running GUI management scripts, and has a few basic client-side events, detailed below.
  • Added support for custom radar map. The minimap sections go to store/maps/radar/section<00-63>.png and the menu map sections go to store/maps/radar/region<00-08>.png
  • Added option to disable backface culling. This makes maps designed for GTA 3 look better since they weren't made considering backface culling used by VC.
  • Added option to disable helicopter blade damage.

All information about new scripting features, both server and client side, can be found in the topic about server update.

Credits to Juppi for the GUI library and Stormeus for integrating it with VC:MP. And me for implementing client side scripts!
#3
Server Update 04rel004
  • Added client-side GUIs and scripting. The client now has a Squirrel core for running GUI management scripts, and has a few basic client-side events, detailed below.
  • Extensively revised the plugin API to give more informative return values for plugin calls and to reduce repetition.
  • Added functions and callbacks for communicating between the server and client via plugin calls.
  • Removed server-side sprites. Use client-side sprites instead.
  • Removed server-side textdraws. Use client-side GUI labels instead.
  • Checkpoints and spheres were merged, a parameter for CreateCheckPoint can now be used to decide between a sphere and a checkpoint.

If your script relies on server-side features that have been removed, we recommend porting your GUI scripts to use client-side features and upgrading to this server version afterward.

Server downloads:
Windows Server (x86)
Windows Server (x64)
Linux Server (x86)
Linux Server (x64)

You can access the new plugin header at:
https://bitbucket.org/maxorator/vcmp-plugin-header/src

About client side scripts

Client scripts go to store/script with main.nut being the first script file loaded. The documentation is available below.

Updated plugins

Currently all plugins are in one archive:
http://v04.maxorator.com/allplugins_04rel004_patch7.7z

It contains the Windows and Linux, 32 and 64 bit versions of the following plugins:
  • Announce
  • Java
  • Squirrel
  • SQLite for squirrel
  • MySQL for squirrel
  • Hashing for squirrel
  • Sockets for squirrel
  • XML configuration loader

Any plugins that have not been updated for this version WILL NOT WORK.
#4
Between 17.04.2016 01:45 and 17.04.2016 13:00 GMT, the latest client version available had a bug which caused bullet collisions to ignore some smaller objects, such as players, in some locations, making bullets go through players without causing any damage or bleeding. I am posting this as proof in case there are some cheat reports about this from that time period.

Yesterday krystianoo helped me debug this issue around the Haiti drug factory, where he found a specific place where it reproduced. I've seen the video of the report about him and that was definitely caused by this bug.

Edit: Some details about this bug. It occurred when the shot was made over a border of a game sector (50x50 pieces of the game world) and when the bullet path intersected with a large object, such as a building, which was present in both sectors. In this case, the objects in the sector where the target was were not checked for collisions because an object in the current sector was already detected to be hit, even though the position where the collision was detected was outside of the current sector. As such, it didn't depend on just the location of the shooter or the thing being shot, but the path of the bullet.
#5
A client update has been released for 04rel003.

  • Support for custom vehicle animations, same way as in MVL.
  • Fixes vehicle tires shootable through the vehicle.
  • Fixes custom LOD objects rendered even when close.
  • Fixes a crash when cleaning up custom objects on disconnect.
  • Death reason/killer while in vehicle should work better now.
  • Support for custom timed objects.
  • Support for 2dfx effects on custom objects.



About using timed objects and 2dfx

Courtesy of AdTec_224, we are now closer to being able to properly port maps in their full glory to VC:MP. The limit of 2dfx is around 10000. I won't be giving a long explanation on this, just some examples in the spoiler below. If you have any specific questions about them, ask away.

[spoiler]
Timed object:
    <object id="1777">
        <flags value="12"/>
        <time on="18" off="3"/>
        <texture path="comlights.txd"/>
        <collision path="comNbtm.col" name="block4_scplights"/>
        <model path="block4_scplights.dff" distance="3000.000000"/>
    </object>

Object with a light 2dfx:
    <object id="1046">
        <flags value="0"/>
        <texture path="maindragsb1.txd"/>
        <collision path="industSE.col" name="ind_maindrag1"/>
        <model path="ind_maindrag1.dff" distance="210.000000"/>
        <effect>
            <position x="2.591290" y="-19.984100" z="-9.906090"/>
            <colour r="255" g="255" b="255" a="200"/>
            <type>0</type>
            <light>
                <distance>100.000000</distance>
                <outerrange>0.000000</outerrange>
                <size>1.000000</size>
                <innerrange>0.000000</innerrange>
                <shadowintensity>40</shadowintensity>
                <flash>1</flash>
                <wet>0</wet>
                <flare>0</flare>
                <flags>0</flags>
                <corona>coronastar</corona>
                <shadow>shad_exp</shadow>
            </light>
        </effect>
    </object>

Object with a particle 2dfx:
    <object id="1080">
        <flags value="0"/>
        <texture path="dogfact.txd"/>
        <collision path="industSE.col" name="petfoodfactory"/>
        <model path="petfoodfactory.dff" distance="100.000000"/>
        <effect>
            <position x="-5.738040" y="2.641720" z="19.758400"/>
            <colour r="255" g="255" b="255" a="200"/>
            <type>1</type>
            <particle>
                <type>0</type>
                <strength x="0.000000" y="-0.000000" z="-0.005000"/>
                <scale>0.500000</scale>
            </particle>
        </effect>
    </object>
[/spoiler]
#6
This release should fix the problem with "Failed to rename new installation" that some people get when the server browser is downloading an update.

Download here:  Updated browser
#7
A client update has been released for 04rel003.

  • Fixes some problems with loading custom models.
  • Fixes player SetHeading setting to + 90 degrees from the specified value.
  • Increases custom object limit from 400 to 6000.



About new model IDs

Since the custom objects now occupy the range 6000-12000 instead of the previous 6000-6400, the vehicle IDs have moved from 6400 to 12000. For now they are silently converted to the correct range, so it shouldn't break custom vehicles in current servers.

This limit (or lack thereof) means that what you now have to look out for is that you don't use too much memory with the custom objects. Currently all models of custom objects stay in memory and are not loaded/unloaded like the game's main map is.
#8
This is a sneak peek into a plugin that implements the bindings between Java and the server. Even though it is ready for use, I am posting it here for now to get some initial feedback and iron out some issues based on that. Also, I am not currently writing up a beginner tutorial for setting this up. Once this goes official, I will try to use any feedback and questions here to provide a proper tutorial (for setting up a project and development environment, not for the language, there are plenty of those) and an FAQ.

A very short intro:

This initial release is aimed at people who are familiar with Java and its build tools (or know how to google). Beginner tutorials will come later.
#9
A client update has been released for 04rel003.

  • Map objects can be hidden via XML.
  • Fixed Steam version sniper aim crash.



How to hide objects via XML

The structure of a map xml file is a bit different now (old format still works). Here's a sample that hides a building in downtown:
<?xml version="1.0" encoding="ASCII"?>
<map>
<itemlist>
</itemlist>
<hiddenlist>
<rule model="1738">
<position x="-593.064209" y="686.2479858" z="27.2444458" />
</rule>
</hiddenlist>
</map>

So if you want to also hide objects, the root element has to be map and both the itemlist and hiddelist go inside it.
#10
A client update has been released for 04rel003.

  • Support for custom skins. No server update is necessary.



Quick guide to custom skins

Each custom skin is one .7z archive in store/skins folder, where the file name format is z<skinid>_<skinname>.7z. Skin ID is in the range 200-249, and the custom skins can be used in-game with the same IDs that are specified in the file name.

Archives must contain the following files (only the file extension matters):
  • .xml XML file that contains the name and animation info for the skin.
  • .dff The model file for the skin.
  • .txd The texture file for the skin.

This is what the .xml file may look like:
<?xml version="1.0" encoding="ASCII"?>
<skin>
<basic>
<name>Awesome Skin</name>
<animgroup>man</animgroup>
<animfile>null</animfile>
</basic>
</skin>

The animation group and animation file values are the same as you would use in default.ide.
#11
A client update has been released for 04rel003.
  • Fixed custom audio files overriding the audio file with the next ID.
This update will take effect upon reloading the browser.
#12
A client update has been released for 04rel003. Some of the listed fixes were already released on the previous days.

  • Fixed custom vehicles in SA format exploding when shooting the petrol cap, because it wasn't synced
  • Fixed custom bikes and boats causing crashes
  • Increased maximum custom vehicle dff/txd file size from 12mb to 24mb
  • Fixed vehicles with hydraulics crashing the game by disabling hydraulics

This update will take effect upon reloading the browser.
#13
An update for VC:MP 0.4 (04rel003) servers has been released.



Server Update Released
  • Fixed vehicle streaming regression - vehicles were not removed when players went far away.
  • Fixed a crash when client sent events about already deleted checkpoints or spheres.

Windows Server (x86)
Windows Server (x64)
Linux Server (x86)
Linux Server (x64)
#14
This version brings a new feature that requires both server and client to be updated for it to work, so the version is bumped to 04rel003.



Server and Client Update Released
  • Custom vehicles can be added by putting them in the store/vehicles folder.
  • Improved accuracy of sphere and checkpoint events (server).

Windows Server (x86)
Windows Server (x64)
Linux Server (x86)
Linux Server (x64)

The client update will automatically download and install upon joining an up-to-date 0.4 server.



Quick guide to custom vehicles

Each custom vehicle is one .7z archive (similar to .zip, but created with 7-Zip) in store/vehicles folder, where the file name format is v<modelid>_t<vehicletype>_p<maxpassengers>_<vehiclename>.7z. Model ID is the ID you will use to create vehicles that use this custom vehicle model. They have to be in the range 6400-6499. Vehicle type is a number, where 0 means a car (or a helicopter), 1 means a bike and 2 means a boat.

Archives can contain the following files (only the file extension matters):
  • .xml (required). The file containing all the IDE and handling information for your vehicle plus some extra options.
  • .dff (required). The main model file of your vehicle - this can also be a model file in SA format (may include collision).
  • .txd (required). The texture file for your vehicle - this can also be a texture file in SA format.
  • .col (required if .dff doesn't contain collision model). The collision model to be used with your vehicle.
  • .ifp (optional). Custom animations for your vehicle.

This is what the .xml file looks like (this one is for PCJ 600):
[spoiler]<?xml version="1.0" encoding="ASCII"?>
<vehicle>
    <basic>
        <type>bike</type>
        <name>PCJ 600</name>
        <anims>bikes</anims>
        <comprules>0</comprules>
        <extraflags>0000</extraflags>
        <wheelrotangle>16</wheelrotangle>
        <wheelscale>0.670000</wheelscale>
        <immunity>0</immunity>
    </basic>

    <aidata>
        <class>motorbike</class>
        <freq>10</freq>
        <level>7</level>
    </aidata>

    <colors>
        <carcol>13,13</carcol>
        <carcol>22,22</carcol>
        <carcol>35,35</carcol>
        <carcol>38,38</carcol>
        <carcol>2,2</carcol>
        <carcol>3,3</carcol>
        <carcol>48,48</carcol>
        <carcol>51,51</carcol>
    </colors>

    <audio>
        <enginefarsample>287</enginefarsample>
        <enginenearsample>23</enginenearsample>
        <hornsample>0</hornsample>
        <hornfreq>27000</hornfreq>
        <sirensample>0</sirensample>
        <sirenfreq>9600</sirenfreq>
        <doorsounds>1</doorsounds>
    </audio>

    <handling>
        <mass>500.000000</mass>
        <percentsubmerged>103</percentsubmerged>
        <steeringlock>35.000000</steeringlock>
        <seatoffset>0.300000</seatoffset>
        <damagemultiplier>0.150000</damagemultiplier>
        <value>10000</value>
        <flags>00010102</flags>

        <dimensions>
            <x>0.800000</x>
            <y>1.800000</y>
            <z>1.200000</z>
        </dimensions>

        <centreofmass>
            <x>0.000000</x>
            <y>0.050000</y>
            <z>-0.090000</z>
        </centreofmass>

        <traction>
            <multiplier>1.600000</multiplier>
            <loss>0.900000</loss>
            <bias>0.480000</bias>
        </traction>

        <transmission>
            <numofgears>5</numofgears>
            <maxspeed>190.000000</maxspeed>
            <acceleration>50.000000</acceleration>
            <drivetype>R</drivetype>
            <enginetype>P</enginetype>
        </transmission>

        <brakes>
            <deceleration>15.000000</deceleration>
            <bias>0.500000</bias>
            <abs>0</abs>
        </brakes>

        <suspension>
            <forcelevel>0.850000</forcelevel>
            <dampening>0.150000</dampening>
            <upperlimit>0.150000</upperlimit>
            <lowerlimit>-0.160000</lowerlimit>
            <bias>0.500000</bias>
            <antidive>0.000000</antidive>
        </suspension>

        <lights>
            <front>1</front>
            <rear>1</rear>
        </lights>
    </handling>

    <bikehandling>
        <leanfwdcom>0.330000</leanfwdcom>
        <leanfwdforce>0.150000</leanfwdforce>
        <leanbackcom>0.280000</leanbackcom>
        <leanbackforce>0.150000</leanbackforce>
        <maxlean>44.999996</maxlean>
        <fullanimlean>38.000004</fullanimlean>
        <deslean>0.930000</deslean>
        <speedsteer>0.700000</speedsteer>
        <slipsteer>0.500000</slipsteer>
        <noplayercomz>0.100000</noplayercomz>
        <wheelieang>35.000008</wheelieang>
        <stoppieang>-40.000000</stoppieang>
        <wheeliesteer>-0.009000</wheeliesteer>
        <wheeliestabmult>0.700000</wheeliestabmult>
        <stoppiestabmult>0.600000</stoppiestabmult>
    </bikehandling>

</vehicle>
[/spoiler]

This feature is ported from the singleplayer modification Maxo's Vehicle Loader, so I won't be creating a separate thorough documentation for it right now. Here is the original modification: http://gtaforums.com/topic/477801-maxos-vehicle-loader/ . It contains .xml files for all the default VC vehicles and some documentation. In that thread you can find more specific explanation for various settings from the changelog (vehicle weapons are disabled in multiplayer though, and tuning parts cannot be controlled by the server). If you can't find an answer to your question about some xml field in there, feel free to ask here.

It also contains also links to applications and websites which help in creating the .xml files, for example by automatically converting handling file lines to .xml file handling format. One of these helping sites can be found here: http://almost610.ucoz.com/blog/welcome/2012-12-23-4 .

You can find existing vehicles already in the right format from GTAGarage and GTAInside sites (search with MVL as keyword). If you decide to use any of those for your server, make sure to ask the authors for permission if possible. You should also add a <author> line to the .xml file (in the <basic> section) which contains the original author of the vehicle - it will be shown to players when they enter that vehicle.
#15
A client update has been released for 04rel002.
  • Added game_sensitivity_ratio setting to set the ratio between X and Y sensitivity (in range 0.5-2.0)
  • Fixed a bug that didn't let players switch to certain weapons
  • Widescreen setting in VC options menu can no longer be enabled since it messes up aiming

This update will take effect upon reloading the browser.
#16
A client update has been released for 04rel002.
  • Added a new immunity flag for players - critical shot immunity (0x40, or 64 in decimal). This also applies for headshots.

This update will take effect upon reloading the browser.
#17
A client update has been released for 04rel002.
  • Fixed setting invalid rotation to a vehicle crashing the game.
  • Fixed a crash that happens after a while when the server has many objects.
  • Fixed a crash that occurred while taking a screenshot with certain resolutions.

This update will take effect upon loading the browser or joining a 04rel002 server.
#18
A client update has been released for 04rel002.
  • Fixed no GUI on Steam version when not using windowed mode.

This update will take effect upon loading the browser or joining a 04rel002 server.
#19
A small bugfix update for 04rel002.

Update 1
  • Fixed transparent fences being solid for bullets after a previous update.

Update 2
  • Local players are using aiming animation when shooting in first person mode, so shots at them are more accurate.
  • Fixed remote players who were aiming sometimes breaking out of aim animation.

This update will take effect upon loading the browser or joining a 04rel002 server.
#20
Tiny client update for 04rel002.

Update 1
  • Improved anti-wallglitch (except for shotguns, will be added later). Shots should now hit the obstacle between your weapon and the target, not go through it.

Update 2
  • Fixed an issue with the initial anti-wallglitch implementation that caused people to shoot through vehicles/players.

Update 3
  • Same fix now also applied for shotguns.

Update 4
  • Fixed an issue which made it appear as if wallglitching still worked in some cases.

This update will take effect upon loading the browser or joining a 04rel002 server.