Evolent Boosting
By default we already provide 5 out of box missions, 3 low tier, 1 mid tier and 1 high tier missions.
Create your own mission
- Write server side data in
contract.data
(this gets passed to client-side). - Write client side data in
Contracts[data.contractId]
. GetBoostVehicle
andDeliverVehicle
is recommended as first & last step.- While adding a mission to a class, remember, index matters.
- Client-side preparation happens for all group members.
- All validation happens through the
contract.leaderId
Create server side mission logic.
Create a new file in server/missions/
named whatever... In our example (test)
local missionModule = require('modules.mission')
local Mission = missionModule.Mission
local Step = missionModule.Step
return Mission:new({
steps = {
GetBoostVehicle,
Step:new({
title = "Step 2",
locations = {},
disableGps = true,
isComplete = function(self, contract)
-- SERVER VALIDATION FOR COMPLETION
return true
end,
complete = function(self, contract)
-- EXECUTE SOME ACTION WHEN STEP GETS COMPLETED
end,
preparation = function(self, contract, location)
-- THIS GETS EXECUTED ONLY ONCE WHEN THE STEP GETS STARTED
end
}),
DeliverVehicle
},
requiredItems = {
advancedlockpick = 1
}
})
Add server side mission to list
Import your mission module in server/missions/missions.lua
and add it to the appropriate mission class list.
local PaintMission = require 'server.missions.paint'
local RimsMission = require 'server.missions.rims'
local TrackerMission = require 'server.missions.tracker'
local TowerMission = require 'server.missions.tower'
local GangMission = require 'server.missions.gang'
local TestMission = require 'server.missions.test'
Missions[1] = {
["paint"] = PaintMission,
["rims"] = RimsMission,
["tracker"] = TrackerMission
}
Missions[2] = {
["paint"] = PaintMission,
["rims"] = RimsMission,
["tracker"] = TrackerMission
}
Missions[3] = {
["tower"] = TowerMission,
}
Missions[4] = {
["tower"] = TowerMission,
-- THIS GOT ADDED TO A TIER MISSION
["test"] = TestMission,
}
Missions[5] = {
["gang"] = GangMission
}
Missions[6] = {
["gang"] = GangMission
}