https://linen.dev logo
scriptから車内放送を鳴らす
# forum
u
ScriptやATSAなどからTrainStateData(9)の変更はできますが、鳴らすことはできるのでしょうか?また、どのように呼べば鳴らせるのでしょうか?
そもそもそんなメソッドないのか...多分、そんな希ガス
b
変えるだけなら`EntityTrainBase#setTrainStateData`を 音声を鳴らすなら…何がいいんだろな
`ClientProxy#playSound`とか?
`RTMCore.proxy`でそれぞれのサイドでのCommonProxyクラスのインスタンスにアクセスできる
u
なるほどです!
まともに動くかわからないし使うかもわからないけど現在の車内放送をscriptから鳴らせそうなscript
Copy code
javascript
//RTMCore
importPackage(Packages.jp.ngt.rtm);

function getChime(entity) {
  var TrainStateType =
Packages.jp.ngt.rtm.entity.train.util.TrainState.TrainStateType;
  var index = entity.getVehicleState(TrainStateType.Announcement);
  var modelset = entity.getResourceState().getResourceSet();
  if (modelset == null) return null;
  var sa0 = modelset.getConfig().sound_Announcement;
  if (sa0 != null && index >= 0 && index < sa0.length) {
    return sa0[index][1];
  }
  return null;
}

function playchime(entity) {
  var chime = getCurrentChimeName(entity);
  if (!chime) return;
  RTMCore.proxy.playSound(entity, chime, 1.0, 1.0);
}
変な質問だけどこれどう思いますかね(本当に変な質問) -# こういう使い道なら〜とか良ければ....
9 Views