Jump to content

Courier 1.0.0

   (5 reviews)

1 Screenshot

About This File

 

 

Requirements

You need to download & install these resources first:

  1. NativeUI
  2. Efficient Attachment Sync

  3. Currency API (after installing, define a currency named cash)

 

Installing

  • Put the files you downloaded in their respective places
  • Set up some businesses and products (read below)
  • All done

 

Basically

This script adds factories and buyers which sell and buy products, your job is to buy stuff from factories and sell them to buyers for profit.

 

Commands

/products: Accesses a vehicle's product inventory, you have to be at the back of the vehicle.

/takeproduct: Takes a product from the ground/factory.

/dropproduct: Drops a product from your hands to the ground/buyer.

 

JSON Files

Most of the changes are done by editing JSON files located in packages/courier/json/.

Remember to validate your changes here: https://jsonlint.com/

 

config.json

businessWorkInterval: Interval of the business work timer (used for factories to make product and buyers to sell product), default value is 60000.

worldCleanerInterval: Interval of the world cleaner timer (used for removing dropped products), default value is 60000.

droppedProductLife: Milliseconds a dropped product will stay for, default value is 600000.

dropProductOnDeath: If true, dying will cause players to drop the product they're carrying, default value is true.

dropProductOnDisconnect: If true, leaving the server will cause the players to drop the product they're carrying, default value is true.

 

vehicles.json

This file contains an object that keeps which vehicles are supported by this script in modelName: capacity format. (Vehicles List)

{
  "burrito3": 6, // 6 products for burrito3
  "rumpo": 6, // 6 products for rumpo
  "speedo": 4, // 4 products for speedo
  "youga": 4 // 4 products for youga
}

 

products.json

This file contains the product information in object of objects format. A product has name, model, price, profit, businessTime, attachOffset and attachRotation properties.

name: The product's visible name.

model: Model name of the product, used for dropping and attaching.

price: Price of the product.

profit: Profit rate of the product. Price is multiplied by this value while selling products to a buyer.

businessTime: Milliseconds it takes for a factory to create one of this product/for a buyer to sell one of this product.

attachOffset: Attachment offset of the product model on player.

attachRotation: Attachment rotation of the product model on player.

// Example: Ammunition product
"ammo": {
  "name": "Ammunition",
  "model": "gr_prop_gr_bulletscrate_01a",
  "price": 300,
  "profit": 1.2,
  "businessTime": 600000,
  "attachOffset": {
    "x": 0,
    "y": -0.18,
    "z": -0.18
  },
  "attachRotation": {
    "x": 0,
    "y": 0,
    "z": 0
  }
}

 

businesses.json

This file contains business information in array of objects format. A business has type, productType, initialStock, maxStock and position properties.

type: Business type, only factory and buyer are available.

productType: The product this business is interested in, only the values in products.json are available.

initialStock: How much product this business has on server start.

maxStock: Maximum product this business can have.

position: Location of the business.

// Example: Beer Factory & Buyer used in the video
[
  {
    "type": "factory",
    "productType": "beer",
    "initialStock": 100,
    "maxStock": 100,
    "position": {
      "x": 4.168992519378662,
      "y": 12.795921325683594,
      "z": 69.82928466796875
    }
  },
  {
    "type": "buyer",
    "productType": "beer",
    "initialStock": 0,
    "maxStock": 20,
    "position": {
      "x": 29.61789321899414,
      "y": 5.448328018188477,
      "z": 69.10714721679688
    }
  }
]

 

businessTypes.json

This file contains business type information in object of objects format. You probably don't need to make any changes to this file, unless you want to add new business types. (which needs some scripting as well)

A business type has label and blipSprite properties.

label: Visible name, used for blip name and label.

blipSprite: Blip sprite of the business type. (Blip Sprite List)

// Example: Default business types
{
  "factory": {
    "label": "Factory",
    "blipSprite": 615
  },
  "buyer": {
    "label": "Buyer",
    "blipSprite": 616
  }
}

 

Extensions

This script extends mp.Player and mp.Vehicle.

 

Player Functions

// Returns true if the player is carrying a product.
player.isCarryingProduct();

// Returns the type of product the player is carrying, will be null if the player isn't carrying anything.
player.getCarryingProduct();

// Makes the player start carrying a product. Type should be a valid product type and the player shouldn't be carrying a product, or it won't work.
player.startCarryingProduct(type);

// Makes the player stop carrying a product.
player.stopCarryingProduct();

 

Vehicle Functions

IMPORTANT: Vehicles with models that are in vehicles.json automatically get an inventory when entityCreated event is called, so you don't need to use setProductInventory for them. (Unless you want to be 100% sure they have it)

// Sets the product inventory of a vehicle. newInventory must be an array created by the array constructor like "new Array(8)".
vehicle.setProductInventory(newInventory);

// Returns true if the vehicle has a product inventory.
vehicle.hasProductInventory();

// Returns the product inventory of the vehicle, will be null if the vehicle doesn't have one.
vehicle.getProductInventory();

// Adds a product to the vehicle product inventory, index must not have an item already and index must be within the bounds of product inventory array. Returns true if successful, false otherwise.
vehicle.giveProduct(index, productType);

// Returns the product at the specified index of vehicle product inventory, will be null if index doesn't have a product.
vehicle.getProduct(index);

// Removes the product at the specified index of vehicle product inventory. Returns true if successful, false otherwise.
vehicle.removeProduct(index);

 

Source code is available on GitHub in case you don't want to download: https://github.com/root-cause/ragemp-courier

  • Like 3

User Feedback

Create an account or sign in to leave a review

You need to be a member in order to leave a review

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

JamesBeast

   3 of 5 members found this review helpful 3 / 5 members

🚚    📦    📮

Link to review
hubba

   2 of 4 members found this review helpful 2 / 4 members

🗳️

  • Like 1
Link to review
Captien

   2 of 4 members found this review helpful 2 / 4 members

root.rp soon??

Link to review
Original

   0 of 2 members found this review helpful 0 / 2 members

Nice, epic job

Link to review
×
×
  • Create New...