Taxi Mod (nee help)

My attempts in making a taxi for sanbdox+ were also unsuccessful. I tried to call for a homie, teleport him to some destination, turn myself into a passenger and let the NPC-driven car "chase" that homie. It seems that there's no way to teleport a homie, however... Of course, this is a work-around, but I thought of it as a proof of concept.
 
Forget about my last post... I actually got it to work. The trick was to keep the follower in DNBO state so engine doesn't teleport him/her back to player or wipe out from the memory. I'm including an overview snippet here and a full sandbox+ version that includes my stuff as well - it's mandatory to use this taxi thing while riding as passenger.

Another thing, just to make it clear: it's a workaround for a taxi. It's working, but needs pretty extensive (too extensive probably) input from player. It's more like a proof of concept than "Yay, I'm so pr0, I made a working taxi for you!!!111oneoneeleven".

And the instruction manual:
You need at least two followers. Enter the car as a passenger (6 + semicolon) and enter the car. You don't have to wait for your fellows to start driving - just press F + [. You teleported your 2nd Follower far away! Also, "revival needed" box should appear. Now wait for your homie to start driving. If he/she doesn't feel like grabbng the driving wheel, press 6 and semicolon again. When you're on the move, tap F + ]. Here you go!

Misc info:
- Most probably you'll run out of revival time. Press F + up arrow to reset that timer.
- You can change driving destintion whenever you want - just tap F + [ and choose your location (as for now, three destination are avaible for testing purposes)
- The code attached isn't bug free. It has its issues but on the other hand, please remember - it's just for presenting the idea...


Code:
taxi_dest = 0
 
-- (...)
 
-- there's a "taxi_dest = 1" line inside a "if (passenger_activated == 0) then" segment.
 
-- (...)
 
 
elseif player_action_is_pressed(B_UP) and not MELEE_PUSHED then
 
if human_is_downed("#FOLLOWER2#") then
    npc_revive("#FOLLOWER2#")
    character_kill("#FOLLOWER2#", true, nil, true)
 
else
    sandboxplus_message("FOLLOWER2 doesn't need to be revived.")
end
 
MELEE_PUSHED = true
 
       
elseif player_action_is_pressed(B_LBRACKET) and not MELEE_PUSHED then
 
if not character_exists("#FOLLOWER2#") then
 
    if taxi_dest == 0 then
        teleport_to_object("#FOLLOWER2#", LOCAL_PLAYER)
        sandboxplus_message("Destination unset.")
 
    elseif taxi_dest == 1 then
        local tposx,tposy,tposz = (1263.05 - Dock_Posx), (-1149.94 - Dock_Posy), 60.20                   
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Nuclear Plant")
   
    elseif taxi_dest == 2 then
        local tposx,tposy,tposz = (152.36 - Dock_Posx), (436.41 - Dock_Posy), 13.13
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Central Avenue")
 
    elseif taxi_dest == 3 then
        local tposx,tposy,tposz = (-1203.63 - Dock_Posx), (157.17 - Dock_Posy), 6.13                   
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Zimo's Pad")
 
    end
 
 
else
 
sandboxplus_message("You need at least 2 followers.")
 
end
 
    if taxi_dest == 3 then
        taxi_dest = 0
    else
        taxi_dest = taxi_dest + 1
 
    end
 
MELEE_PUSHED = true
 
    elseif player_action_is_pressed(B_RBRACKET) and not MELEE_PUSHED then
 
local myride = get_char_vehicle_name(LOCAL_PLAYER)
    local driver = vehicle_get_driver(myride)
 
    if  character_is_in_vehicle(LOCAL_PLAYER) and driver == "#FOLLOWER#" and taxi_dest ~= 0 then   
        vehicle_chase(myride, "#FOLLOWER2#", true, true)
        sandboxplus_message("Taxi mode ON.\nPress passenger keybind to exit taxi mode.")
    else
        sandboxplus_message("You have to be in a vehicle, riding as a passenger, with a chosen destination.")
    end   
 
    MELEE_PUSHED = true
 

Attachments

  • sr3_city.lua
    253 KB · Views: 784
Forget about my last post... I actually got it to work. The trick was to keep the follower in DNBO state so engine doesn't teleport him/her back to player or wipe out from the memory. I'm including an overview snippet here and a full sandbox+ version that includes my stuff as well - it's mandatory to use this taxi thing while riding as passenger.

Another thing, just to make it clear: it's a workaround for a taxi. It's working, but needs pretty extensive (too extensive probably) input from player. It's more like a proof of concept than "Yay, I'm so pr0, I made a working taxi for you!!!111oneoneeleven".

And the instruction manual:
You need at least two followers. Enter the car as a passenger (6 + semicolon) and enter the car. You don't have to wait for your fellows to start driving - just press F + [. You teleported your 2nd Follower far away! Also, "revival needed" box should appear. Now wait for your homie to start driving. If he/she doesn't feel like grabbng the driving wheel, press 6 and semicolon again. When you're on the move, tap F + ]. Here you go!

Misc info:
- Most probably you'll run out of revival time. Press F + up arrow to reset that timer.
- You can change driving destintion whenever you want - just tap F + [ and choose your location (as for now, three destination are avaible for testing purposes)
- The code attached isn't bug free. It has its issues but on the other hand, please remember - it's just for presenting the idea...


Code:
taxi_dest = 0
 
-- (...)
 
-- there's a "taxi_dest = 1" line inside a "if (passenger_activated == 0) then" segment.
 
-- (...)
 
 
elseif player_action_is_pressed(B_UP) and not MELEE_PUSHED then
 
if human_is_downed("#FOLLOWER2#") then
    npc_revive("#FOLLOWER2#")
    character_kill("#FOLLOWER2#", true, nil, true)
 
else
    sandboxplus_message("FOLLOWER2 doesn't need to be revived.")
end
 
MELEE_PUSHED = true
 
 
elseif player_action_is_pressed(B_LBRACKET) and not MELEE_PUSHED then
 
if not character_exists("#FOLLOWER2#") then
 
    if taxi_dest == 0 then
        teleport_to_object("#FOLLOWER2#", LOCAL_PLAYER)
        sandboxplus_message("Destination unset.")
 
    elseif taxi_dest == 1 then
        local tposx,tposy,tposz = (1263.05 - Dock_Posx), (-1149.94 - Dock_Posy), 60.20         
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Nuclear Plant")
 
    elseif taxi_dest == 2 then
        local tposx,tposy,tposz = (152.36 - Dock_Posx), (436.41 - Dock_Posy), 13.13
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Central Avenue")
 
    elseif taxi_dest == 3 then
        local tposx,tposy,tposz = (-1203.63 - Dock_Posx), (157.17 - Dock_Posy), 6.13         
        npc_leash_remove("#FOLLOWER2#")
        teleport_to_object("#FOLLOWER2#", "Dock_Purchase", false, false, tposx , tposz, tposy , false)
        character_kill("#FOLLOWER2#", true, nil, true)
        sandboxplus_message("Taxi destintion: Zimo's Pad")
 
    end
 
 
else
 
sandboxplus_message("You need at least 2 followers.")
 
end
 
    if taxi_dest == 3 then
        taxi_dest = 0
    else
        taxi_dest = taxi_dest + 1
 
    end
 
MELEE_PUSHED = true
 
    elseif player_action_is_pressed(B_RBRACKET) and not MELEE_PUSHED then
 
local myride = get_char_vehicle_name(LOCAL_PLAYER)
    local driver = vehicle_get_driver(myride)
 
    if  character_is_in_vehicle(LOCAL_PLAYER) and driver == "#FOLLOWER#" and taxi_dest ~= 0 then
        vehicle_chase(myride, "#FOLLOWER2#", true, true)
        sandboxplus_message("Taxi mode ON.\nPress passenger keybind to exit taxi mode.")
    else
        sandboxplus_message("You have to be in a vehicle, riding as a passenger, with a chosen destination.")
    end
 
    MELEE_PUSHED = true
1. You done really good job! :D
2. I looked in "sr3_city.lua" that you attached and I found you added line "reticle_override_set("sp_vtol01_w", "WPNCAT_RIFLE", SYNC_LOCAL)" to "add_superpowers" command. After I enabled superpowers reticle from TTwC mission appeared. In normal Sandbox+ it is not appears. So, you also updated superpowers. ;)
 
2. I looked in "sr3_city.lua" that you attached and I found you added line "reticle_override_set("sp_vtol01_w", "WPNCAT_RIFLE", SYNC_LOCAL)" to "add_superpowers" command. After I enabled superpowers reticle from TTwC mission appeared. In normal Sandbox+ it is not appears. So, you also updated superpowers. ;)
I attached sr3_city.lua that I'm using in normal gameplay. This line of code just happened to be there as a personal tweak.
 
Awesome idea, Hope you can get it fully functional
Seems pretty cool, if you still plan to make this will you make it cost money for a taxi
and will you be able to call for a taxi/ whenever? without them being busy lol
 
Last edited:
Back
Top