Discussion for Driver: San Francisco (2011)
User avatar
By StifleroGHD
Registration Days Posts Avatar
#59133
SplitScreen Decompiled? Here is .lua:

feedbackSystem.registerHUD("MP Checkpoint Rush Start HUD", function(task, settings)
end, function(task)
local update = function()
end
local cleanup = function()
end
return update, nil, nil, cleanup
end)
feedbackSystem.registerHUD("MP Checkpoint Rush HUD", function(task, settings)
end, function(task)
local instance = task.instance
local localPlayerID = task.agent.localID
local playerTaskObject = instance.taskObjectsByActorID[PLAYER_STRING_TABLE[localPlayerID + 1]]
local packageTaskObject = instance.taskObjectsByActorID[OBJ_TEAM_ONE_STRING_TABLE[1]]
local numCheckpoints = instance.challenge.settings.scoreLimit
local playerCurrentCheckpoint = playerTaskObject.namedTasks.checkpoints.networkVars.checkpointsPassed
local playerPreviousCheckpoint = -1
local checkpointIncreaseValue = 100 / numCheckpoints
local opponents = {}
local scored = false
local objectivePosition = false
local allCheckpoints = checkpointSystem.getNoneSyncronisedCheckpoints(instance.instanceID, 1)
local playerTargetMarker, playerMiniMapMarker
local workingVector = vec.vector()
local checkpointPosition, checkpointHeading
local displayTargetMarker = false
local globalTarget = false
local lastGlobalTarget = false
local timerDisplayed = false
local scoreBarSetup = false
local function updateTargetMarker()
if taskSystem.validTaskObject(playerTaskObject) and taskSystem.validTaskObject(packageTaskObject) then
globalTarget = packageTaskObject.namedTasks.gateTracking.networkVars.leadCheckPoint
if globalTarget ~= lastGlobalTarget then
checkpointPosition = playerTaskObject.namedTasks.checkpoints.dynamicTargets[1].position
checkpointHeading = instance.challenge.spawnPositions[instance.networkVars.routeIndex].route[packageTaskObject.namedTasks.gateTracking.networkVars.leadCheckPoint].heading
for i, checkpointData in ipairs(allCheckpoints) do
if checkpointData.checkpointNum == globalTarget then
checkpointPosition = checkpointData.position
end
end
if playerTargetMarker then
Marker:delete(playerTargetMarker)
playerTargetMarker = false
end
if playerMiniMapMarker then
Marker:delete(playerMiniMapMarker)
end
playerMiniMapMarker = OnlineModeSettings.createMiniMapMarker()
playerMiniMapMarker.position = checkpointPosition
playerMiniMapMarker.localID = localPlayerID
playerMiniMapMarker = Marker:create(playerMiniMapMarker)
lastGlobalTarget = globalTarget
if not packageTaskObject.zapToActionSet then
MPZapToAction.setZapToAction(3, checkpointPosition, checkpointHeading)
packageTaskObject.zapToActionSet = true
else
MPZapToAction.updateZapToActionTarget(checkpointPosition, checkpointHeading)
end
end
if task.agent.inZap or workingVector:sub(task.agent.position, checkpointPosition):length() > 300 then
displayTargetMarker = true
else
displayTargetMarker = false
end
if not displayTargetMarker and playerTargetMarker then
Marker:delete(playerTargetMarker)
playerTargetMarker = false
elseif displayTargetMarker and not playerTargetMarker and checkpointPosition then
playerTargetMarker = OnlineModeSettings.createTargetMarker()
playerTargetMarker.position = playerTargetMarker.position + checkpointPosition
playerTargetMarker.localID = localPlayerID
playerTargetMarker = Marker:create(playerTargetMarker)
end
end
end
onlineInstructionSupport.resetPrompts(localPlayerID)
onlineInstructionSupport.addPrompt("rapidShift", {
enabled = false,
shown = false,
resetOnScore = true,
startTime = 10,
resetTime = 15,
displayFunction = function(self, objectivePos, opponents, player)
if not player.inZap and not GameVehicleResource.withinRadius(player.currentVehicle.position, objectivePos, 400) then
onlineInstructionSupport.displayPrompt("ID:248713", nil, player.localID)
return true
end
return false
end
}, localPlayerID)
onlineInstructionSupport.setPrompt("rapidShift", nil, nil, nil, "ID:248713", localPlayerID)
onlineInstructionSupport.setPrompt("accelerate", nil, 3, nil, nil, localPlayerID)
onlineInstructionSupport.setPrompt("score", nil, nil, nil, "ID:248753", localPlayerID)
local function stepInstructionPrompts()
opponents = {}
for localID, player in next, localPlayerManager.players, nil do
if localID ~= localPlayerID then
table.insert(opponents, {
vehicle = player.currentVehicle,
position = player.position
})
break
end
end
onlineInstructionSupport.step(objectivePosition, opponents, scored, localPlayerID)
scored = false
end
local function setupScoreBar()
if Menu.GetSceneStatus("Splitscreen", "ss_racemode_countdown") == 2 then
feedbackSystem.splitScreenSupport.setupScoringBar(checkpointIncreaseValue)
PauseMenu.allow(true)
scoreBarSetup = true
end
end
local function stepPlayerProgress()
playerCurrentCheckpoint = playerTaskObject.namedTasks.checkpoints.networkVars.checkpointsPassed
if playerCurrentCheckpoint ~= playerPreviousCheckpoint then
objectivePosition = playerTaskObject.namedTasks.checkpoints.dynamicTargets[1].position
scored = true
if playerPreviousCheckpoint ~= -1 then
OneShotSound.Play("HUD_Play_Checkpoint", false)
end
playerPreviousCheckpoint = playerCurrentCheckpoint
end
end
local function update()
if not scoreBarSetup and localPlayerID == 0 then
setupScoreBar()
end
stepPlayerProgress()
updateTargetMarker()
stepInstructionPrompts()
end
local function cleanup(taskObject)
if playerTaskObject.namedTasks.checkpoints.networkVars.checkpointsPassed ~= playerPreviousCheckpoint and playerPreviousCheckpoint ~= -1 then
OneShotSound.Play("HUD_Play_Checkpoint", false)
end
if localPlayerID == 0 then
if scoreBarSetup and taskObject.coreData.instance.deleteFromPurge then
feedbackSystem.splitScreenSupport.clearScoringBar()
elseif not scoreBarSetup then
PauseMenu.allow(true)
scoreBarSetup = true
end
end
if playerTargetMarker then
Marker:delete(playerTargetMarker)
end
if playerMiniMapMarker then
Marker:delete(playerMiniMapMarker)
end
end
return update, nil, nil, cleanup
end)
User avatar
By StifleroGHD
Registration Days Posts Avatar
#59135
PostalDude wrote:Carluver69 has done this eons ago with LUASF, he hasn't released it due to well.....let's just say you can do some real stupid sh*t and it'll work no problem in MP.
Yeah, I just got AchievementID too
User avatar
By StifleroGHD
Registration Days Posts Avatar
#59137
PostalDude wrote:CL69 and I had some real fun with this explosions mod he cooked up. It's pretty damn hilarious.
Hahahaha, I believe in that.
If I get car's ID and get them "out of there", is it gonna help a little bit about car spawning? I can do that later
User avatar
By StifleroGHD
Registration Days Posts Avatar
#59142
PostalDude wrote:Trust me, i've tried a LOT of stuff to try and mess with the traffic spawning and fix it. I got it to load new sets of vehicles every time you reload the game, like in the PS3/XBOX 360 patch, that's as far as I got. I've got about 68 vehicle IDs in a .txt as my "dream traffic pool".
I can help you to contiune with that if you wan't to
Don't even ask, I'm in!
User avatar
By StifleroGHD
Registration Days Posts Avatar
#59147
PostalDude wrote:I can send you the program but I can't really explain how it works, Carluver69 would have to tell you.
I agree with that. You can send me. Go in PM and we will get a deal.
Crazy Copper Frenzy

https://youtu.be/xAE3QsULyB4

https://youtu.be/AxdGf3F0yIg

Driv3r "Nice Getaway"

https://youtu.be/CYkmGAPoO9s Lucas in Driv3r's Ni[…]

https://youtu.be/Yvc_xKrKhnc?si=k4I5kraarTXctHJp […]