Jump to content

Taxi & Bus | Transport for Arma


mgm

Recommended Posts

PROJECT ON HOLD - TO BE RESUMED ONE DAY...

 

source code is here: https://gitlab.com/themgm/transport_for_arma

 

 

TRANSPORT FOR ARMA

 

INTRODUCTION
This script bring the following functionality:

  1. [READY] Players can call an AI piloted land vehicle TaxiAnywhere and request it to take you to a point on map which YOU CHOOSE BY CLICKING ON MAP.
    Upon reaching destination AI-controlled-taxi-vehicle will stop and you can disembark. The taxi will then ride away and despawn away from player (for immersion).
     
  2. [READY] Players can call an AI piloted land vehicle FixedDestinationTaxi and request it to take you to ONE OF THE FEW PRE-CHOSEN (by ServerAdmin) points on map.
    Upon reaching destination AI-controlled-taxi-vehicle will stop and you can disembark. The taxi will then ride away and despawn away from player (for immersion).
     
  3. [WIP] Players can embark an AI piloted land vehicle PublicBus and it will automatically drive on its PRE-CHOSEN BUS ROUTE (by ServerAdmin).
    When a player wish to disembark, they can request a STOP-VEHICLE via the TfA-GUI & allow them to disembark. The bus will then ride away and carry on looping its route.


PAYMENT SYSTEM NOTES

  • Taxi Anywhere Taxis    :    Initial Booking Fee + 1st Mile Fee + Pay-as-you-Go Fee    -- ServerAdmin can customize or disable any of the fees.
  • Fixed Destination Taxis    :    'Single Fee'             -- Fee is calculated on the fly according to a pricing mechanism. ServerAdmin can customize or disable this fee.
  • Public Buses        :    'Single Fee'            -- ServerAdmin can customize/disable the fee on any/all BusRoutes.

 

LICENSE
GNU GPL v3. You can do whatever you want with this mod as long as you give the same freedom to others on your derivative works.

 

DOWNLOAD

29 Jan 2017 - git repo is gone. direct link to the last package (v.0.6.5b2 from 18th May 2016) http://www.filedropper.com/mgmtfav065build2
18th May 2016 - New version v.0.6.5b2 available!
Release package direct link to 7zip archive file: https://gitlab.com/themgm/Transport_for_Arma/blob/master/release_packages/_autogenerated/v.0.6.5.build2/mgmTfA_v.0.6.5.build2.7z
Installation Instructions: https://gitlab.com/themgm/Transport_for_Arma/blob/master/documentation/INSTALLATION_INSTRUCTIONS.txt
Link to release directory where you can download the three additional files to verify integrityhttps://gitlab.com/themgm/Transport_for_Arma/tree/master/release_packages/_autogenerated/v.0.6.5.build2
If you try this script, please let me know what you think :)

 

 

FEEDBACK / SUGGESTIONS / BUG REPORTS / SUPPORT
Please post in this thread.


 

See it in action! Click below to go to post #2 - VIDEOS

 

 

last edit:
21 Jan 21 - added source code URL (find it in the 1st post)
29 Jan 17 - added latest version link & clarified project status.

Link to comment
Share on other sites

reserved.

old stuff

Mods, This is an intentional separate post to enable direct hyperlink'ing to the content. Please do not merge this post with the others. Thank you.

VIDEOS

[video #1] Map Markers: "Taxi going to (self) termination"

Below is the first YouTube video that finished uploading...

This video featuring Map Markers in which basically members of a special group (called totalOmniscience) can see everything related to Transport for Arma services on their map.

  • totalOmniscience group members can see all Service Requests from Players
  • totalOmniscience group members can see all Service Units (i.e.: Fixed Destination Taxis + clickNGo Taxis + PublicBuses + Repair/Support Vehicles)
  • The vehicle direction and all other information is updated in real time showing the actual live data about that particular Service Unit.
  • Requestor of a service + customer of a service + his buddies (in the same vehicle) can see the map tracker for their service unit only they cannot see any other service units.
  • Other players (who are not using a Transport for Arma service) cannot see any TfA markers on their maps at all.

[video #2] Map Markers: "Taxi pick up point/drop off point/vehicle current status"

Below is the second YouTube video that finished uploading...

This video is also featuring Map Markers. In this one we can see the pick up point, drop off point, and the current position of the Taxi vehicle along with its status (awaiting get in) and vehicle age + current task age + current task threshold in seconds [the time when driver will stop waiting for the player to get in and go self-destruct, thus open up a new "available driver" slot for other players].

[video #3] Ordering a Fixed Destination Taxi

Note that the player is at a CATP (Call-a-Taxi-Point) - this is a predefined point in the map. By default, the three spawn traders in Altis map.

CATPs are easily configurable, see the screenshots post above, there is a relevant note in the SPOILER under Screenshot: 01_Arrived_at_a_CATP.

Also "Taxi Fixed Destination" list is easily configurable as well, same logic apply.

F3uYNlq.png

[video #4] Map Tracking In Action (a very short video)

1nEQBMY.png

[video #5] Full Demo of clickNGo Feature best video so far

A 3 minute HD video; full demo of clickNGo feature, this was sized 1.5 GB raw video, so consider viewing in HD. What's covered in this video:

  • Player call a taxi by pressing INS key (configurable).
  • Taxi & driver is created, driver go to pick up the player, unlock the doors and send a message to the player: Your Taxi is here please get in
  • Player get in, doors get auto locked.
  • AI driver start driving towards destination. When vehicle is close to destination, doors auto-unlock.
  • Player get off, driver must self-destruct ASAP to free up a driver slot. He picks a random termination point and start driving towards that spot but first says bye using the horn :)
  • We see map updates during the whole journey.
I was writing to a NAS on a busy and old computer so there are some frame drops, sorry about that!

UzBhZn3.png

.

Link to comment
Share on other sites

reserved.

old stuff

Transport for Arma

 

 

 

Hey,

 

It is over a month now that I spend ~ 100% of my Epoch gaming time, mostly hours stolen to nights and weekends, working on a new Taxi & Bus system.

 

This script is set out to put an end to transport problem in Arma and it’s so very creatively called Transport for Arma.

Personally I will use this script with Epoch mod only but I can't see why this script can't be used in vanilla Arma and/or other mods hence the Arma bit in the name rather than Epoch...

 

I still I don’t feel like it’s ready to be released. Since I can’t ship, I’ll at least blog… so here's the story of how it started and some details about what it is, how it does what it does and so on.

 

Current code base sits at about 3000 lines (comments excl.) and I've an implementation of:

  • 95% of what I call Fixed Destination Taxis
  • 95% of what I call clickNGo Taxis
  • 0% of Public Bus System (however due to code reusability I believe I actually have about 50% of bus system in place)
  • 0% of potential feature: "admin-tool: send a taxi to Player"
  • 0% of potential feature: repair support vehicle
SCRIPT HISTORY

1. Well, it started long time ago when I saw axeman's original "bus script" here: http://opendayz.net/threads/dayz-arma-ai-controlled-bus-route.12569/

What an amazing concept?! I wanted to get on an AI vehicle and ride around so bad but never got around to even testing it (lazy me).

As I am no scripter I did nothing on it and it was pretty much forgotten...

2....until 5nine revealed long lost love with his taxi script 

 

3. After poking 5nine several times #entry206278, page-2#entry206553 and page-2#entry209174 (well page-2#entry210860 too) I eventually decided I could no more wait for this life critical script and started writing my own.

My Initial Detailed Planning

Having zero scripting experience -I'm not sure why-, at the time, I somehow decided a quick weekend hack would enable me with a working prototype.

Original idea was not to release it ever so I wasn't gonna mind if it only worked from a certain spot with possible errors on screen etc. as long as it took me from A to B I was gonna be happy!

 

With no documentation, no proper error checking etc. I could write a quick hack in about 2.5 days, right?

Well, after about 32.5 days, I can give you an authorative answer: NO. Not even close.

 

Current Status

I have been enjoying the challenge and learning about Arma scripting however. I am hoping to bring this to a usable state and release so that if anybody wants it, they can use it in its initial released form and hopefully a deriative work can make it even better.

Link to comment
Share on other sites

hey bud if you would like a live test server to try it out let me no I would be more than happy to help you out

Thanks viper, I will release the code in Alpha state when it's 3rd party usable. I will be most grateful if you try it and report any issues as well as suggestions so we can have a better solution hopefully...

 

 

Wow that looks brilliant!! I would also be more than willing to test this out for you if you'd like?

 

Cant wait to see this in action!

Thanks R4ziel, as per above, all interested server owners will have access to the initial open Alpha and I will be very happy if more people test at the same time.

 

 

 

Update: I noticed video link for video #4 was broken - fixed now...

Link to comment
Share on other sites

Hi Mgm! Good work! its Epah Friendly?

EDIT:

 

Sorry, I read your EPAH as 'Epoch' somehow - let me start over...

 

I'm currently developing it in vanilla Arma (it is much quicker to restart server & test things) this being the case I haven't tested with Epoch AntiHack at all and I don't know how it will behave.

 

My guess is that it will not work with Epoch AntiHack (for non-admin players) because my limited knowledge of Epoch AH is: it's a closed box and doesn't allow non-admin players to do 'magic' things via addons.

Players will only "get in a vehicle" however they need to be able to call a taxi first; calling a taxi requires clientPC to execute some code, I assume Epoch AH will (as usual) decide that they are "hacking" and kick/ban them.

 

tl;dr Unless Epoch AH becomes more permissive I will have to disable Epoch AH on my server, yes it sucks but life without taxis suck more (for my taste).

Link to comment
Share on other sites

This looks amazing MGM, really good work. Would also like to test and provide assistance where possible for you. PM me if interested. Server is WWCY - We Will Cut You. Epoch 0.3.0.1

that  server name is scary, hope most noobs not running away? :)

thanks for your kind words. I have received good feedback in this thread and via PM so far so I think I will release sooner than my initial plan.

 

I will postpone a major feature [public buses] and a eye candy feature [repair/support vehicles] and just go ahead & release a "working" basic taxi script version.

I can add the buses and the eyecandy later in the background I guess.

Link to comment
Share on other sites

I have a good update: clickNGo feature is now also complete, meaning you can call a Taxi from anywhere on the map to anywhere on the map without requiring "call a taxi point" or "taxi fixed destination".
I still like the CATP/fixed destination service as it can be used as bambi support service or in a million other 'limited scope' scenarios.
clickNGo is useful for those who want 'traditional' taxi service on their server.
 
 
I've also recorded about a 3 minute HD video, a good full demo of this feature calling taxi + travel + getting off + map updates during the journey. Video size is 1.5 GB though so hopefully in 3-4 hours you should see the video at the YouTube link below... I was writing over a NAS  on a busy and old computer so there are some framedrops, be warned :)
 

Link to comment
Share on other sites

UPDATE: I took the plunge and finally moved my code [which was developed on vanialla Arma3] to Epoch and created an autostart addon. project is much closer to an alpha release now...

 

 

 

Interested in testing this out. Been using the other Taxi service and players are giving all positive marks, but they want to be able to go more places and not have it break so much. So think they'd like this script even better.

Planning to release soon, will be happy if you test it out and provide feedback :)

 

 

If you are locked in the vehicle, what happens if someone attacks the taxi and disables it?

Good point.
Locking doors does remove the GET OUT actionMenu option.

Locking doors does not remove the EJECT actionMenu option.

After consideration I have decided to keep the EJECT actionMenu option there; in cases of emergency players will not have to wait for AI driver to action; they can immediately leave the vehicle.

Locking doors is more about keeping other players (especially those with trolllic behaviour) out rather keeping the requestor in.

I do have some code to support multiplayer rides, an access control list [requestor and buddies] exist in the system but it is not tested yet.

I guess I will focus on these after the initial public alpha release.

 

 

While on the topic:

A minor down side of keeping EJECT actionMenu option as is, is that players can accidentally eject.

This accidental eject has happened to me only once in my testing (of probably 1000 test travels - and possibly at 2 AM!) thus my current opinion is it's not a big deal nevertheless it would be good to have some  mechanism against accidental eject.

Obviously if players eject when vehicle is travelling at 160 km/h then there won't be much to 'recover' however at lower speeds, an accidental EJECT usually lead to minor injury or no impact at all but player loses his paid ride. My plan is making the AI driver aware of the situation so he can stop, unlock the doors and wait for the accidental ejector to get back in [for a threshold].

This is already a lower priority TODO item in  my notes.

 

 

Below is the details on the expiry mechanic if anyone is interested...

 

In TfA a job can be in one of the many phases as defined in relevant workflow files (and copied to the spoiler below)

// Current Action In Progress for: clickNGo Taxis
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs00TextString										= "Awaiting Init Clearance"						;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs01TextString										= "Driving to Requestor"						;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs02TextString										= "Awaiting Get In"							;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs03TextString										= "Awaiting Payment"							;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs04TextString										= "Driving to Requested Destination"				;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs05TextString										= "Awaiting Get Off"							;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs06TextString										= "Driving to Termination"						;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs07TextString										= "At Termination"							;
mgmTfA_configgv_currentclickNGoTaxiActionInProgressIs08TextString										= "Terminated (Map Marker In Deletion Queue)"		;

As it stands, in version 0.2.4, this script already has expiry thresholds; each phase (or task/action) has a pre-determined threshold, as defined in the masterConfig file (and copied to the spoiler below).

//--------------------------------------------------------------------------------
// EXPIRY TIMEOUT THRESHOLDS
mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiOnTheWayToPickingUpRequestorInSecondsNumber		= 180									;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiOnTheWayToPickingUpRequestorInSecondsNumber			= 180									;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiRequestorIsNotHereInSecondsNumber				= 90										;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiRequestorIsNotHereInSecondsNumber					= 90										;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiRequestorOutsideVehicleInSecondsNumber			= 90										;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiRequestorOutsideVehicleInSecondsNumber					= 90										;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiRequestorHasNotPaidInSecondsNumber				= 90										;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiRequestorHasNotPaidInSecondsNumber					= 90										;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiOnTheWayToDropOffInSecondsNumber				= 900									;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiOnTheWayToDropOffInSecondsNumber					= 900									;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiRequestorInsideVehicleInSecondsNumber				= 90										;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiRequestorInsideVehicleInSecondsNumber					= 90										;

mgmTfA_configgv_expiryTimeOutThresholdfixedDestinationTaxiOnTheWayToTerminationInSecondsNumber			= 240									;
mgmTfA_configgv_expiryTimeOutThresholdclickNGoTaxiOnTheWayToTerminationInSecondsNumber					= 240									;
//--------------------------------------------------------------------------------

We do not expect, for example, driving to Requestor action to take more than 90 seconds. If it does, something is wrong and Service Unit should deal with it.

Service Units do eject all passengers before doing anything drastic such as self-destruction so no players get harmed.

Link to comment
Share on other sites

UPDATES

  1. [forum enhancement]: this forum thread updated; 1st post tidied up, details moved to 4th post.
  2. [forum added]: Screenshot #09 added to above.         Showing multiple clickNGo Taxis in action in map tracking mode.
  3. [forum added]: Video #05 added to                                  This is a full demo of the clickNGo feature.
  4. [script enhancements]: A big step! Finally moved to Epoch autostart addon container format [was using Arma 3 SQF up until this point]. Many small enhancements new configuration options.
  5. [script bugfix]: 2nd and any future clickNGo vehicles didn't have working dropOffMarker, this is now fixed.

 

BIG THANKS to nedfox for providing [which is basically Epoch autostart addon container package] for other modder, this saved me several hours!

Link to comment
Share on other sites

Create an account or sign in to comment

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

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
×
×
  • Create New...