Log in to reply
 

[SCRIPT][WIP] JavelinV - An extendable Hitman/Assassination mod



  • What is it?

    JavelinV is a Hitman/Assassination script which's missions are written and stored entirely in XML. This allows the people, YOU, to write your own assassinations and share them with others.

    But this isn't just about killing. It is about killing without being seen, stealing without being seen. It is possible to spawn pickups which are required to complete the missions.

    alt text

    Planned features

    • More default missions.
    • More ways to customize targets and how they interact with each other and with the world.
    • Task Sequences.

    XML Example

    The following is an example mission's XML.

    Each mission is divided into TARGET_GROUPS. You can define as many groups as you want, and each have their own targets, pickups, vehicles, rewards, messages etc.

    Targets can have multiple locations, models and even weapons. It is also possible to set relationship against the player, their accuracy, how well they drive, which vehicle should they enter etc. The complete list is at the bottom of the post.

    <MISSION>
      <TARGET_GROUPS>
        <TARGET_GROUP WANTED_LEVEL_ON_COMPLETE="5" SKIP_WANTED_ON_STEALTH="0">
          <TARGETS>
            <TARGET REQUIRED="0" ID="GUARD_1" ARMOR="100" CHAT_TO_TARGET_ID="GUARD_2" ACCURACY_MIN="40" ACCURACY_MAX="60" PLAYER_RELATIONSHIP="HOSTILE">
              <LOCATIONS>
                <LOCATION X="753.659" Y="1287.431" Z="360.297" ANGLE="267.869"/>
              </LOCATIONS>
              <MODEL_HASHES>
                <MODEL HASH="1702441027" />
              </MODEL_HASHES>
              <WEAPONS>
                <WEAPON HASH="2937143193"/>
              </WEAPONS>
            </TARGET>
            <TARGET REQUIRED="0" ID="GUARD_2" ARMOR="100" CHAT_TO_TARGET_ID="GUARD_1" ACCURACY_MIN="40" ACCURACY_MAX="60" PLAYER_RELATIONSHIP="HOSTILE">
              <LOCATIONS>
                <LOCATION X="755.853" Y="1287.122" Z="360.297" ANGLE="73.498"/>
              </LOCATIONS>
              <MODEL_HASHES>
                <MODEL HASH="1702441027" />
              </MODEL_HASHES>
              <WEAPONS>
                <WEAPON HASH="2937143193"/>
              </WEAPONS>
            </TARGET>
            <TARGET REQUIRED="0" ID="GUARD_3" ARMOR="100" ACCURACY_MIN="40" ACCURACY_MAX="60" PLAYER_RELATIONSHIP="HOSTILE">
              <LOCATIONS>
                <LOCATION X="767.841" Y="1271.742" Z="360.297" ANGLE="5.720"/>
              </LOCATIONS>
              <MODEL_HASHES>
                <MODEL HASH="1702441027" />
              </MODEL_HASHES>
              <WEAPONS>
                <WEAPON HASH="2937143193"/>
              </WEAPONS>
            </TARGET>
            <TARGET REQUIRED="0" ID="GUARD_4" ARMOR="100" ACCURACY_MIN="40" ACCURACY_MAX="60" PLAYER_RELATIONSHIP="HOSTILE">
              <LOCATIONS>
                <LOCATION X="726.048" Y="1289.646" Z="360.297" ANGLE="240.022"/>
              </LOCATIONS>
              <MODEL_HASHES>
                <MODEL HASH="1702441027" />
              </MODEL_HASHES>
              <WEAPONS>
                <WEAPON HASH="2937143193"/>
              </WEAPONS>
            </TARGET>
          </TARGETS>
          <VEHICLES>
            <VEHICLE ID="MAVERICK">
              <LOCATIONS>
                <LOCATION X="734.423" Y="1295.589" Z="360.296" ANGLE="181.628"/>
              </LOCATIONS>
              <MODEL_HASHES>
                <MODEL HASH="2634305738" />
              </MODEL_HASHES>
            </VEHICLE>
          </VEHICLES>
          <PICKUPS>
            <PICKUP MARKED_ON_MAP="1" REQUIRED="1">
              <LOCATIONS>
                <LOCATION X="661.418" Y="1280.907" Z="360.296" ANGLE="0"/>
              </LOCATIONS>
              <MODEL HASH="1430410579" />
            </PICKUP>
          </PICKUPS>
          <ON_GROUP_START_MESSAGES>
            <MESSAGE DELAY="0">
              Merryweather has a new technology our contractor needs. You can find it atop Vinewood Hills.
            </MESSAGE>
            <MESSAGE DELAY="6000">
              Be prepared, they won't be giving it to you easily.
            </MESSAGE>
          </ON_GROUP_START_MESSAGES>
          <ON_GROUP_KILLED_MESSAGES>
            <MESSAGE DELAY="0">
              Our contractor will be happy. We are wiring you your payment.
            </MESSAGE>
          </ON_GROUP_KILLED_MESSAGES>
          <REWARD MONEY_MIN="75000" MONEY_MAX="100000" MONEY_STEP="1000" />
        </TARGET_GROUP>
      </TARGET_GROUPS>
    </MISSION>
    

    Requirements

    • ScripthookV
    • ScripthookVDotNet
    • NativeUI

    Files

    • JavelinV.dll
    • JavelinV/JavelinV.ini
      Settings for the mod, two debug values at the moment for debugging the mod, and debugging the XML. When creating new missions, it is advised to turn on the XML_DEBUG to see if there are any errors and how long it got. Every section has its own Notification call on the UI so it is easy to pinpoint the problem's location.
    • JavelinV/JavelinVMissionReferences.xml
      Allows the players to include as many mission XMLs as they want by adding a path reference like so:
      <REFERENCE PATH="scripts/JavelinV/JavelinVMissions.xml"/>
    • JavelinV/JavelinMissions.xml
      The default missions the mod ships with.

    Structure

    • MISSION
      • ELIGIBLE_CHARACTERS
        • CHARACTER: Full tag, its content should be one of the possible strings. It is NOT an attribute.
          Possible: FRANKLIN | TREVOR | MICHAEL
      • TARGET_GROUPS
        • WANTED_LEVEL_ON_COMPLETE: The player's wanted level on completion.
          Possible: 0 | 1 | 2 | 3 | 4 | 5
        • SKIP_WANTED_ON_STEALTH: Whether the wanted level should be skipped if the player completed the mission in stealth. (Aggroing or scaring a target which is REQUIRED means the stealth is blown)
          Possible: 1 | 0
      • TARGETS
        • TARGET
          • REQUIRED: Whether the target is required to be killed in order to finish the target group.
            Possible: 1 | 0
            Default: 0
          • ID: The unique ID of the target (within the target group). This is used by other targets to identify this target.
            Possible: Any English ABC character, number etc.
          • CHAT_TO_TARGET_ID: The target will look for another target with this ID to chat with.
            Possible: Any target ID in the same target group.
            Default: (Empty)
          • PLAYER_RELATIONSHIP: The target's relationship to the player.
            Possible:
            • CLUELESS: Target will not attack the player unless attacked. If the target has no weapon, they will flee. (Yellow blip on map)
            • AWARE: Target will become HOSTILE if they have any weapon. (Yellow blip if has no weapon, Red blip if has weapon)
            • HOSTILE: Target attacks the player on sight. (Red blip on map)
              Default: CLUELESS
          • MARKED_ON_MAP: Determines whether the target should be marked on the map.
            Possible: 1 | 0
            Default: 1
          • WALKING_AROUND: Determines whether the target will start walking around after spawn. Any other task such as driving a vehicle or chatting to another target will be stronger than this.
            Possible: 1 | 0
            Default: 0
          • ACCURACY_MIN: The minimum accuracy of the target in %.
            Possible: 0-100
            Default: 10
          • ACCURACY_MAX: The maximum accuracy of the target in %.
            Possible: 0-100
            Default: 70
          • ARMOR: The armor of the target.
            Possible: 0-?
            Default: 0
          • CRUISE_VEHICLE_ID: The Vehicle's ID in the same target group to which the target will run, enter and cruise it.
            Possible: Any vehicle ID in the same target group.
            Default: (Empty)
          • CRUISE_VEHICLE_SPEED: The speed at which the target will cruise in their vehicle.
            Possible: 0-? (10-15 is a good range for a normal cruising speed)
            Default: 10
          • START_IN_VEHICLE: Determines whether the target should start in the vehicle.
            Possible: 1 | 0
            Default: 0
          • IS_DRIVER: Determines whether the target will enter the vehicle as a driver, or a passenger.
            Possible: 1 | 0
            Default: 0
          • MIN_FLY_Z: Determines the minimum Z height of the target piloting their plane.
            Possible: 0-?
            Default: 200
          • MAX_FLY_Z: Determines the maximum Z height of the target piloting their plane.
            Possible: 0-?
            Default: 2700
        • LOCATIONS
          • LOCATION: One of the possible location of the target.
            • X: The X coordinate.
              Possible: Float number in the following format: 152.421
            • Y: The Y coordinate.
              Possible: Float number in the following format: 152.421
            • Z: The Z coordinate.
              Possible: Float number in the following format: 152.421
            • ANGLE: The facing angle of the target.
              Possible: Float number in the following format: 152.421
        • MODEL_HASHES
          • MODEL: One of the possible models of the target.
            • Hash: The target's PED model hash. If the hash could not be loaded, a default one will be loaded instead.
              Possible: Any PedHash.
        • WEAPONS
          • WEAPON: One of the weapons of the target. (They will have all of these weapons)
            • Hash: The weapon's hash.
              Possible: Any WeaponHash.
      • PICKUPS
        • PICKUP
          • REQUIRED: Whether the pickup is required to finish the target group.
            Possible: 1 | 0
          • MARKED_ON_MAP: Determines whether the pickup should be marked on the map.
            Possible: 1 | 0
          • MODEL: The PROP Hash of the pickup.
            Possible: Any PROP hash.
          • LOCATIONS
            • LOCATION: One of the possible location of the pickup.
              • X: The X coordinate.
                Possible: Float number in the following format: 152.421
              • Y: The Y coordinate.
                Possible: Float number in the following format: 152.421
              • Z: The Z coordinate.
                Possible: Float number in the following format: 152.421
              • ANGLE: The facing angle of the pickup.
                Possible: Float number in the following format: 152.421
      • VEHICLES
        • VEHICLE
          • ID: The vehicle's unique ID in the target group. Used by targets to identify the vehicle.
            - REQUIRED: Whether the vehicle is required to be destroyed in order to finish the target group.
            Possible: 1 | 0
            Default: 0

            - MARKED_ON_MAP: Determines whether the target should be marked on the map.
            Possible: 1 | 0
            Default: 0
          • LOCATIONS
            • LOCATION: One of the possible location of the vehicle.
              • X: The X coordinate.
                Possible: Float number in the following format: 152.421
              • Y: The Y coordinate.
                Possible: Float number in the following format: 152.421
              • Z: The Z coordinate.
                Possible: Float number in the following format: 152.421
              • ANGLE: The facing angle of the vehicle.
                Possible: Float number in the following format: 152.421
          • MODEL_HASHES
            • MODEL: One of the possible models of the vehicle.
              • Hash: The vehicle's Vehicle model hash.
                Possible: Any VehicleHash.
      • ON_GROUP_START_MESSAGES: Messages to display when starting the target group.
        • MESSAGE: The text to display.
          • DELAY: The delay after which the text will be displayed. The first message should have a delay of 0 to display a message instantly to the player that they started the target group.
            Possible: 0-? (milliseconds)
      • ON_GROUP_FAILED_MESSAGES: Messages to display when failed to complete the target group.
        • MESSAGE: The text to display.
          • DELAY: The delay after which the text will be displayed. The first message should have a delay of 0 to display a message instantly to the player that they finished the target group.
            Possible: 0-? (milliseconds)
      • ON_GROUP_KILLED_MESSAGES: Messages to display when finishing the target group.
        • MESSAGE: The text to display.
          • DELAY: The delay after which the text will be displayed. The first message should have a delay of 0 to display a message instantly to the player that they finished the target group.
            Possible: 0-? (milliseconds)
      • REWARD: The reward upon completing the target group.
        • MONEY_MIN: The minimum money the player will recieve.
          Possible: 0-?
        • MONEY_MAX: The maximum money the player will recieve. MUST NOT BE SMALLER THAN THE MIN!
          Possible: 0-?
        • MONEY_STEP: The step between min and max. The minimum should be 1!
          Possible: 1-?
      • MUSIC_TRIGGERS:
        • TRIGGER: A music trigger.
          • TYPE: Determines the type of the trigger.
            Possible: TARGET_DEAD | TARGET_PROXIMITY
          • TRIGGER_REGARDLESS_CURRENT: Determines whether the trigger can be triggered even though the same music is already playing.
            Possible: 0 | 1
          • CAN_BE_RETRIGGERED: Determines whether the trigger can be re-triggered.
            Possible: 0 | 1
          • TARGET: Full tag. The innerText contains the target's ID. Can be either a vehicle or a target's ID. (TARGET_DEAD, TARGET_PROXIMITY)
            Possible: Any Vehicle or Target ID in the same target group.
          • DISTANCE: Full tag. The innerText contains the distance from the target. (TARGET_PROXIMITY only)
            Possible: 0-?
          • START_MUSIC: Full tag. The music which will start when triggered. (No hashes)
          • END_MUSIC: Full tag. The music which will end the music event upon death, mission cancel. (No hashes)

    HOW TO CREATE MISSIONS

    First of all, read the structure. Copy any of the missions from the default mission pack to fasten things up, then modify it as you please. Once finished, I encourage you to create your own XML file and place it in the scripts/JavelinV folder. After that, edit the JavelinVMissionReferences.xml file and add the reference to your file. The default mission pack reference should be there already, copy that line and rename the file at the end of the path to your XML's name. If all done right, the reference file should look something like this:

    <REFERENCES>
    	<REFERENCE PATH="scripts/JavelinV/JavelinVMissions.xml"/>
            <REFERENCE PATH="scripts/JavelinV/MY_MISSIONS.xml"/>
    </REFERENCES>
    

    Before you do share your file with us, please make sure it works. Open the scripts/JavelinV/JavelinV.ini file and set the DEBUG and XML_DEBUG options to TRUE. Boot up your game or if you are already in-game, reload the scripts via INSERT. Javelin should message you about the amount of missions available. If you got no error, then the missions are probably loaded. Press the START_STOP_KEY set in the INI.

    If you remove the reference from JavelinVMissionReferences.xml to the default file, you can test one mission at a time in your own XML file.

    USEFUL LINKS

    KNOWN BUGS

    If you know how to fix for a certain bug, please let me know! Please report any other bugs.

    • Vehicles disappear most of the time after peds get out of them.
    • Sometimes peds don't start their Tasks if the player is too far away.
    • Sometimes props dont fall to the ground after spawn.

    MOD PAGE

    https://www.gta5-mods.com/scripts/javelinv-an-extendable-hitman-assassination-mod



  • This looks like an amazing mod, I'm all about stealth and since it's possible to complete it without getting wanted I'm so excited.

    Do know roughly when this mod will be done? I can't wait.



  • @Shineberg Thank you! It is actually done. I'm just adding new features. Going to release it this sunday (9th of februrary).



  • Added features

    • Peds can now fly planes. Added MIN_FLY_Z and MAX_FLY_Z attributes to TARGET.
    • START_STOP_KEY setting is now in INI.
    • Vehicles can now be set to be MARKED_ON_MAP and REQUIRED.
    • Targets can now be marked as DEFEND_REQUIRED. The death of any of the marked targets will result in mission fail.
    • Added ON_GROUP_FAILED_MESSAGES for when failing the mission.

    Future features

    • Working on adding TASK SEQUENCES with which the possibilities will rocket jump to the sky.

    Updated the above structure description to reflect the current state.

    The mod will be out in a couple of hours.



  • Quick update
    The mod has been released. It is waiting for admin approval. It will ship with 16 missions!



  • Quick update
    Uploaded 1.0.1 removing a test mission. Sorry guys!



  • Version 1.1.0

    • Player can no longer switch characters during jobs.
    • Missions now have a ELIGIBLE_CHARACTERS tag in which CHARACTER tags can be specified who are eligible to be assigned with the mission. If none specified, every character can take the mission.
    • Added blip routing.
    • Added Mission Complete sound and popup.
    • Changed all of the non-debug notifications and subtitles into notifications from Javelin.
    • Enemies now start in their vehicle in the Meth job.

    ELIGIBLE_CHARACTERS example

    <MISSION>
        <ELIGIBLE_CHARACTERS>
          <CHARACTER>FRANKLIN</CHARACTER>
        </ELIGIBLE_CHARACTERS>
        <TARGET_GROUPS>
        ...
    

    The above will only allow Franklin to take the mission, but you can add Trevor there aswell. Every character can take the mission by default, so you dont have to add ELIGIBLE_CHARACTERS tag at all if you dont want to exclude any character.



  • Version 1.2.0

    • Fixed a bug where vehicles and peds would not start their tasks due to missing navmesh around them. (If they were far away from the player)
    • Introducing music triggers. TARGET_PROXIMITY and TARGET_DEAD triggers for now. New ones will be implemented later on.

    MUSIC_TRIGGERS example

    <MUSIC_TRIGGERS>
      <TRIGGER TYPE="TARGET_PROXIMITY">
        <DISTANCE>100</DISTANCE>
        <TARGET>TARGET</TARGET>
        <START_MUSIC>CAR1_MISSION_START</START_MUSIC>
        <END_MUSIC>CAR1_MISSION_FAIL</END_MUSIC>
      </TRIGGER>
      <TRIGGER TYPE="TARGET_DEAD">
        <TARGET>TARGET</TARGET>
        <START_MUSIC>CAR1_APPROACH</START_MUSIC>
        <END_MUSIC>CAR1_MISSION_FAIL</END_MUSIC>
      </TRIGGER>
    </MUSIC_TRIGGERS>
    

    The order of triggering music is peculiar in GTA5. You must first use a MUSIC which will start the event, and not every music can start a music event. Then give it an end which triggers the fadeout. The start music usually has a suffix of _START, while the end music _FAIL.

    List of music names.

    Updated the "4 Witnesses" mission to have music. Check it out both in game and in XML to see how it works. Also updated the "Save him quick!" mission to have chase music.

    TRIGGER-s can have optionally 2 attributes: CAN_BE_RETRIGGERED and TRIGGER_REGARDLESS_CURRENT. The first comes in handy if you want a music to be re-triggerable, such as a proximity trigger being re-triggered after you triggeredit before, but then changed the music with a TARGET_DEAD trigger. The second determines whether to start the same music again which is already playing. Note that this won't restart the music, just adds a sound effect.



  • Version 1.2.1

    • Fixed a game crashing bug in mod when peds trying to cruise with a vehicle they are not yet in.

Log in to reply
 

Looks like your connection to GTA5-Mods.com Forums was lost, please wait while we try to reconnect.