投稿者 トピック: [patch]車庫に車両の更新機能を追加する  (参照数 5115 回)

T-Na

  • ゲスト
車庫内で車両の更新を行えるようにします。

オリジナルでも古い車両を売却して新しい車両と差し替えば同じことが出来ますが
  • 売却を行うことで更新しているという感覚が乏しくなる
  • 中間に挟まっている車両を更新する際の手間が煩わしい
ということで実装してみました。

この機能を使用するには、対象になる車両に更新候補を関連付ける必要があるため
別途tabファイルにて設定する必要があります(後述)

なお、ネット機能を介してのテストは一切行っておりません。
また、この機能を実装するに当たってslist_tplにコピーコンストラクタ等を実装しておりますので
これに起因する不具合が別の場所で発生する可能性があります。

車両の更新方法:
  • 車庫のモードを「updating/remodeling」に変更。
  • 編成の中から更新したい車両をクリックして選択(選択状態の車両は下部のバーが明るい緑色になります)
  • 車庫内に候補車両が出現するので変更したい車両をクリック。
  • 完了
更新コスト:
更新の際には更新コストが必要になります。
デフォルトでは新車購入時の10%の値段になりますが、simuconf.tabや「高度な設定」から変更可能です。

コード: [選択]
#更新コストを新車価格の何%にするか(0~100、省略時は10)
magnification_of_update_cost = 50


更新候補の関連付けtabファイル:
tabファイルはPakフォルダ内に「update_vehicles」という名のフォルダを作成し、そのフォルダ内に格納します。
拡張子が「tab」であれば、hoge.tab、foo.tab等、どのような名前でもかまいません。
また、複数のtabファイルに分散できるので、アドオン作者ごとに分けたりすることも可能です。

書式:
tabファイル内の記述はdatファイルとほぼ同じです。

#で始まる行はコメントです。

コード: [選択]
#この行に書かれたものは全て無視されます。


-で始まる行はブロックの区切りです。
ブロックごとに区切ることで複数の車両に対する設定を1つのファイル内に記述できま す。

コード: [選択]
#Train_aとTrain_bの設定を記述
name=Train_a

--------
name=Train_b



name=車両名
  • 更新候補の関連付けを行う車両の名前を指定します。
  • ここで指定した車両を別の車両に更新できるようにします。
コード: [選択]
#JNR_Kuha115を指定する場合
name=JNR_Kuha115

update[n]=更新候補名
  • 更新候補車両の名前を指定します。
  • ここに記述された車両が候補として追加され、車庫内に出現します。
  • nは数値で、同一ブロック内では0から順番に記述する必要があります。間を飛ばしたり、ダブらせてはいけません。
  • なお、数値はtabを読み込む際に必要なだけなので、数値によって車庫内への出現順が変わることはありません。
コード: [選択]
#番号が連番になっていれば順番は関係ないのでOk
update[1]=foo
update[2]=bar
update[0]=bee

#3~4を飛ばしているうえに、5がダブっているのでダメ
update[5]=boo
update[5]=nooo
----
#別のブロックの番号とはダブってもOk
update[0]=hoge

name、updateともインストールされていない車両が記述されていた場合は無視されます。

記述例:
main.tab内への記述例。

コード: [選択]
#main.tab
#JNR_Kiha47をJRW_Kiha47_HiroshimaとJRW_Kiha47_Kakogawaに更新できるようにする
name=JNR_Kiha47
update[0]=JRW_Kiha47_Hiroshima
update[1]=JRW_Kiha47_Kakogawa

別のtabファイルに設定を書いた場合、上書きではなく追加になります。

コード: [選択]
#sub.tab
JNR_Kiha47にJRW_Kiha47_KishinとJRW_Kiha47_Toyookaも候補として追加する
name=JNR_Kiha47
update[0]=JRW_Kiha47_Kishin
update[1]=JRW_Kiha47_Toyooka

main.tabとsub.tabの両方が読み込まれた場合
JNR_Kiha47は~Hiroshima、~Kakogawa、~Kishin、~Toyookaの車両に更新可能になります。
※sub.tabしか読み込まれなかった場合でも、~Kishin、~Toyookaには更新可能になります。