skriptで時間計測

サーバー運用される方はこちらで情報交換されてはいかがでしょうか?
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.322286)

skriptで時間計測

投稿記事by kagetorayukkuri » 2018年11月28日(水) 22:38

/ta startで時間計測を開始し、/ta finishで計測終了しその終了したタイムをmessageで伝えるといった
skriptを書きたいのですが頭からわかりません。できれば小数第3位まで表示したいです。
どなたかどうすればいいか教えてください...
kagetorayukkuri
ID:e47404ea
大工さん
 
記事: 43
登録日時: 2017年11月07日(火) 22:05

  • (PostNo.322381)

Re: skriptで時間計測

投稿記事by AZARASHI » 2018年12月03日(月) 06:31

1tickよりも小さい数を測るのは無理かと
ゲームが好きです。

最近EclipceでPluginを作り始めました!
まだまだ初心者の中の初心者で、ほぼ分からないです!
分からない事などがある時に、気軽に質問できたりするPluginが作れる人募集してます...
Discordしてます...募集に応募してくれる方はPMにてお願いします...
AZARASHI
ID:251f1b72
木を殴ってる
 
記事: 15
登録日時: 2018年3月10日(土) 01:02

  • (PostNo.322407)

Re: skriptで時間計測

投稿記事by kagetorayukkuri » 2018年12月04日(火) 07:52

では小数第1位まででお願いします<(_ _)>
kagetorayukkuri
ID:e47404ea
大工さん
 
記事: 43
登録日時: 2017年11月07日(火) 22:05

  • (PostNo.322619)

Re: skriptで時間計測

投稿記事by Monster » 2018年12月13日(木) 13:41

kagetorayukkuri さんが書きました:では小数第1位まででお願いします<(_ _)>


[url]https://minecraft-ja.gamepedia.com/ティック[/url]

このサイトを参考した上で書いています。

コード: 全て選択
command /ta [<text>]:
    permission: 【必要であれば任意のパーミッション】
    trigger:
        if arg-1 is "start":
            set {ta.onoff} to false
            set {ta} to 0
            while {ta.onoff} is true:
                wait 2 tick
                add {ta} to 0.1
        if arg-1 is "finish":
            set {ta.onoff} to true
            message "%size of {ta}%秒" to all players
        if arg-1 is not set:
            message "start - 計測を開始します。" to player
            message "finish - 計測を終了します。" to player


でどうでしょうか?
コード: 全て選択
permission:

はなくても大丈夫です。

いらなかったかもしれませんが、
/taだけで説明文を表示するようにしておきました。

-説明-
if文に関しては上から順に
・arg-1 が start である場合
・arg-1 が finish である場合
・arg-1 が 空白である場合
となっています。

arg-1というのはこのコマンドで言うと[<text>]のことで、
マイクラ内のコマンドを参考に説明すると
/give @p stone 1
の @p stone 1 が順に arg-1 arg-2 arg-3 とされます。

コード: 全て選択
set {ta.onoff} to false
set {ta.onoff} to true


これらは while の制御のために必要です。
[/code]while {ta.onoff} is true:[/code]
{ta.onoff} が trueになるまでというコードです。
trueになるまで
2tick待つ

0.1追加する
を実行します。

補足ですが、
{ta.onoff.%player%} {ta.%player%}
とすることで複数人が同時に使うことができます。

また、%player% を %loop-player% などに変更することでチームの
時間計測をすることが可能です。

skRayFall を導入することでサイドバーに常に表示することも可能ですが…
UUUMネットワーク所属のゆっくり夫婦という名前で活動している駆け出し動画投稿者です。

Monster Life Serverのskripterやdeveloper、その他諸々を募集してます。
詳細は下記にて

http://forum.minecraftuser.jp/viewtopic.php?f=47&t=36962
Monster
ID:485223cb
大工さん
 
記事: 41
登録日時: 2018年8月13日(月) 00:45

  • (PostNo.322634)

Re: skriptで時間計測

投稿記事by AZARASHI » 2018年12月14日(金) 04:45

コード: 全て選択
command /ta [<text>]:
   trigger:
      if arg 1 is "start":
         {timed} is not 1
         set {time} to 0
         set {timed} to 1
         while {timed} is 1:
            add 0.1 to {time}
            wait 2 tick
      else if arg 1 is "finish":
         set {timed} to 0
         send "%{time}%" to player


携帯から書いたのでご要望通り動くかは分かりませんが、だいたいこんな感じです。頑張ってください。
ゲームが好きです。

最近EclipceでPluginを作り始めました!
まだまだ初心者の中の初心者で、ほぼ分からないです!
分からない事などがある時に、気軽に質問できたりするPluginが作れる人募集してます...
Discordしてます...募集に応募してくれる方はPMにてお願いします...
AZARASHI
ID:107b3311
木を殴ってる
 
記事: 15
登録日時: 2018年3月10日(土) 01:02

  • (PostNo.322695)

Re: skriptで時間計測

投稿記事by Dotoo » 2018年12月16日(日) 02:09

揚げ足を取るみたいになって申し訳ありませんが、Skriptでも1tick以下の秒数を取る事は出来ますよ!
ついでにwhileも使わず済むのでデータベースやサーバーにも優しいです。
コード: 全て選択
command /ta [<text>]:
   trigger:
      if arg-1 is "start":
         set {time} to now
      if arg-1 is "finish":
         set {_a} to difference between {time} and now
         set {_a} to "%{_n}% seconds" parsed as timespan
         set {_a} to "%{_a}%"
         replace all " seconds" or " second" with "秒" in {_a}
         replace all " minutes" or " minutes " or "minutes " or " minute" with "分" in {_a}
         replace all " hours" or " hours" or "hours " or "hour" with "時間" in {_a}
         replace all " days" or " day" with "日" in {_a}
         replace all " and" or " and" or " and " with "" in {_a}
         replace all " " with "" in {_a}
         send "%{_a}%""

replace allの部分で勝手にテキストを整形してしまいましたが、こうしないと英語のタイムスパン表記になるので使いにくいと思ったので勝手に付け加えました。本来なら、
コード: 全て選択
command /ta [<text>]:
   trigger:
      if arg-1 is "start":
         set {time} to now
      if arg-1 is "finish":
         send "%difference between {time} and now%"

と書けば2つの時間の比較が出来ます。
アバター
Dotoo
ID:f100fd3f
レッドストーン掘り
 
記事: 534
登録日時: 2012年11月21日(水) 15:20

  • (PostNo.322712)

Re: skriptで時間計測

投稿記事by kagetorayukkuri » 2018年12月16日(日) 18:53

みなさんありがとうございました<(_ _)>
自分なりに色々調べてやってたんですが
フォーマットの変更に手間取ってて...
replaceでできるのですね。本当にありがとうございました!!
kagetorayukkuri
ID:e47404ea
大工さん
 
記事: 43
登録日時: 2017年11月07日(火) 22:05


Return to 質問:マルチサーバー運用

x