【Skript】1秒ごとに○○をする

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

【Skript】1秒ごとに○○をする

投稿記事by Aoi0728@アップデート見送り勢 » 2018年1月15日(月) 15:39

こんにちは。あおいです。
質問を見に来てくださってありがとうございます。
本題です

今回、
コード: 全て選択
options:
  p4: &7[&cAoi&bSkript&dSystem&r&7]

on chat:
    if {chatmanager.::%player%} is greater than or equal to 3:
        execute console command "/warnconsole %player% チャット連投対策 30"
        message "{@p4} あなたはチャット連投のしすぎです。やりすぎるとBANされます。"
        wait 3 seconds
        execute console command "/minecraft:kick %player% チャットチート対策"
        set {chatmanager.::%player%} to 0
    add 1 to {chatmanager.::%player%}

このようなSkriptを作りました。

この後にやりたいことは、1秒ごとに、[color=red]全員の{chatmanager.::%player%} を1個ずつ減らしていく、という処理です。

どのようにすればいいのでしょうか。
ちなみに対象は全ワールドです。
最近鯖主デビューしたやつ
画像
誰でも鯖に来いよな!
http://com.nicovideo.jp/community/co3753006
最近ニコニコも始めました
Aoi0728@アップデート見送り勢
ID:c29792e5
木を殴ってる
 
記事: 19
登録日時: 2017年12月18日(月) 09:33

  • (PostNo.312695)

Re: 【Skript】1秒ごとに○○をする

投稿記事by superu » 2018年1月15日(月) 15:53

ある時間ごとに何かをするという時は
コード: 全て選択
every [number] [hour,minutes,seconds,ticks] in [worldname]:

というイベントがあります。
今回はworld名がわかりませんが
コード: 全て選択
every 1 seconds in [worldname]:
    loop all players:
        add -1 to {chatmanager.::%loop-player%}

こんな感じで動作するのではないでしょうか。
ただしこのeveryというイベントは使用しすぎるとサーバーの重くなる原因となりますので乱用しないほうがいいと思います。
なにか助けになればと思いますが、forum使うのは慣れていないので至らない点があったら申し訳ありません。
superu
ID:c4d63793
水から上がったとこ
 
記事: 5
登録日時: 2017年12月10日(日) 21:48

  • (PostNo.312707)

Re: 【Skript】1秒ごとに○○をする

投稿記事by Dotoo » 2018年1月15日(月) 19:20

そもそもそのような重い処理を使わずとも、
コード: 全て選択
on chat:
   if difference between {chat_sent_time_%player%} and now is smaller than 3 seconds:
      add 1 to {chat_sent_antispamcount_%player%}
   else:
      set {chat_sent_antispamcount_%player%} to 0
      set {chat_sent_time_%player%} to now
   if {chat_sent_antispamcount_%player%} > 2:
      send "あなたはチャット連投のしすぎです。やりすぎるとBANされます。"
      wait 3 seconds
      execute console command "/minecraft:kick %player% チャットチート対策"

これで要件は満たせるはずです。every XXイベントは極力使わないに限ります。
ちなみにリアル時間1秒ごとにどうしても処理を行いたいのであれば、
コード: 全て選択
every 1 seconds:
   loop all players:
      subtract 1 from {chatmanager.::%loop-player%}

です。

AoiさんはとりあえずSkriptのDocを読みましょう。いきなり背伸びをして無理やり色々な物を作ろうとしても良い結果は生まれません。Skriptとは本来「プラグインを作れなくても英語さえ出来ればそれなりにそれっぽい事ができるスクリプトインジェクター」ですから、こうして初歩の初歩から質問しようとするのであればSkriptはすっぱり切り捨ててJavaを覚えたほうが圧倒的に有用です。
アバター
Dotoo
ID:8c8f5629
レッドストーン掘り
 
記事: 517
登録日時: 2012年11月21日(水) 15:20

  • (PostNo.312724)

Re: 【Skript】1秒ごとに○○をする

投稿記事by Aoi0728@アップデート見送り勢 » 2018年1月16日(火) 05:55

>>返信してくださった方

返信ありがとうございます。
確かに、自分自身まだDocページで理解できていないものなどあるので、出直してきたいと思っています。
最近鯖主デビューしたやつ
画像
誰でも鯖に来いよな!
http://com.nicovideo.jp/community/co3753006
最近ニコニコも始めました
Aoi0728@アップデート見送り勢
ID:c29792e5
木を殴ってる
 
記事: 19
登録日時: 2017年12月18日(月) 09:33


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

x