Minecraft Transit Railway (Automated trains, planes, and more!)

Minecraft Transit Railway (Automated trains, planes, and more!)

1M Downloads

[Enhancement]Improving Fare System

DreamUniverse843 opened this issue · 5 comments

commented

Is your feature request related to a problem? Please describe.
Until now,most subway systems using distance to calculate fares during the trip.

  1. Besides Fare Zone Mode we've already realized,there're lots of city using Distance Fare Mode(The cost depends on the distance during the trip.)
  2. Currently player's balance is like a single Octopus linked to the player,while it doesn't support Single Journey Ticket , having many Octopus cards with a single player or balance/Octopus card refunding.

Above all,I suggest to improve the fare system so that the experience during trip could be better.

Describe the solution you'd like
For Feature 1,I think it could be realized like:

  1. When entering a station,the Fare system records the position of the origin station;
  2. When leaving a station,the Fare system gets the position of the destination station,then calculates the Fares and costs it.
  3. For interchange situation,the shortest way could be calculated as the Web Map.

For Feature 2,I think it could be realized like:(SJT/Card should be an item in inventory.)
(Single Journey Ticket is short as SJT.)

  1. The Fare System could be configured as Fare Zone Mode or Distance Mode.
  2. Currently the balance could be transferred as Money,then the player could buy a SJT or request an Card by using Money.
  3. For each SJT/Card,the item NBT records whether the ticket is in fare,the balance,the time it expires and the request player's UUID.It's better to provide a ticket/card number in the item's NBT. (For SJT,the "balance" is the price which equals to the cost to the farthest station the ticket could get.)
  4. If the balance or the SJT can't allow the player to exit,the Fare System could notify the player to make up the fare,and the player should make up the fare using Ticket Machine in the station.
  5. When the player exits the station,the Fare System checks if the balance is enough to do so.
  6. It could support transfer over stations.(Like setting a time limit,the player could enter the line again while it needn't be regarded as a new trip.)

Additional Information
留一份中文原意,以免我有的地方用词不当...
Here's the Chinese original text to avoid my misusing in words.

目前的大多数轨道交通系统除了计费区模式外,按车站距离计算票价的方法亦广泛运用。
当前的计费算法有点像:给一位玩家强绑定一张八达通。同时计费系统并不支持单程票,允许一个玩家买多张票、申请多张交通卡或对车票/交通卡进行退票/退卡。
基于上,我建议改进现有的计费系统,以极大程度改善玩家的乘车体验。

对于第一条,我的设想是:

  1. 当乘客进站时,计费系统记下乘客的入口站位置;
  2. 当乘客出站时,计费系统记下乘客的出口站位置,计算并扣除应扣票款;
  3. 对于存在换乘的情况,可参考 Web Map 的算法计算最短路,以免多扣票款或发生进出相同但扣费不同的情况。

对于第二条,我的设想是:(此处提及的单程票/交通卡均为可在物品栏内的物品)

  1. 计费系统可在计费区模式或距离计算模式间转换;
  2. MTR 现有的 balance 计分板可转换为一个货币量度(Money),乘客通过消耗货币购买单程票或使用交通卡。
  3. 对于每张单程票/交通卡,可在对应物品的 NBT 标签上记下:①车票是否在付费区内;②卡余额(单程票则为最远可达站点的票价);③办卡/购票者的标识符(UUID 或其他标识);④卡号/票号。
  4. 如果卡余额不足或单程票超程,不足以使玩家出闸,则计费系统提示玩家需要补票,随后玩家在付费区内的补票机补票。
  5. 当玩家出闸时,计费系统检测交通卡或单程票的余额是否足以支付费用,随后判定能否出闸。
  6. 建议支持跨站换乘。(例如,设置一个时间限值,乘客可在设定时间内再次进入其他站的付费区,而无需重新计费)
commented

Related to #359

commented

Well,I've just read #359,and could you please read my suggestion again? Some of my ideas are not mentioned in #359...

First,the Fare System depends on the scoreboard in the world.That means that no matter which way we use to pay,we don't have a card or ticket item that actually exists in our inventory.So my suggestion is that we could import a card or ticket item and use its NBT flag to record balance,owner,or other data.This could make the experience closer to real life.

Second,now we only have Fare Zone Mode,could we add a Distance calculating mode?That's useful and more convenient in multi-line interchange railway system instead of configuring the Fare Zone of each line.

Thanks!

commented

Thank you for your suggestion, I'm just grouping similar issues together so that it wouldn't be cluttered. If I have time to get to this, I will read over all the related suggestions.

commented

tks
:)

commented

This is a good idea, although it has been suggested many times before by other people, but it'd be quite hard to actually implement and as it is people complain about how complicated stuff like fare zones is, this adds in many more levels of difficulty to use.