【Skript】権限と所持金のダブル条件処理

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

【Skript】権限と所持金のダブル条件処理

投稿記事by Siketyan » 2015年12月09日(水) 18:45

Skriptでランクアップの仕組みを作ろうと、サーバー接続時に権限と所持金を持っているか確認し、条件を満たせばランクアップするというコードを書いてみたのですが、うまく動作しませんでした。そのコードがこちらです。
コード: 全て選択
on join:
   player have permission "skript.lank.minarai"
      {money.%player%} is greater than or equal to 5000:
      console command "/pex group Normal user add %player%"
      console command "/pex group Minarai user remove %player%"
      message "ランクが&7&l[見習い]&r&fから&e&l[ノーマル]&r&fになりました!"

PEXでMinaraiグループにはskript.lank.minaraiを持たせてあります。
所持金が5000(円)以上の場合にconsole~を実行したいのです。
試しに、所持金判断文をコメントアウトすると、正常に動作しましたが、もちろん所持金は判断されませんでした。
「権限を持っている」ではなく、「グループに所属している」を判断する分はないでしょうか。
また、このコードのどこをいじれば正常に動作するでしょうか。
ちなみに、Skriptのリロード時にエラーは出ていません。
よろしくお願いいたします。

≪環境≫
Spigot 1.8.8(git-Spigot-06ad352-4a7472d)
Skript 2.1.1
PermissionsEx 1.23.3
画像
アバター
Siketyan
ID:2f7d6884
石掘り
 
記事: 77
登録日時: 2015年3月25日(水) 17:19
お住まい: こ↑こ↓

  • (PostNo.256533)

Re: 【Skript】権限と所持金のダブル条件処理

投稿記事by Mon_chi » 2015年12月12日(土) 11:15

まず、文の確認をします。
一つ目に、player have permission "skript.lank.minarai"というのはConditionsに当たります。なので、その次の行にインデントは必要ありません。
二つ目に、 {money.%player%} is greater than or equal to 5000: のように最後に : がつくと文頭のifが省略されている形となります。
つまりその文章はif {money.%player%} is greater than or equal to 5000: といった意味になります。なので、その次の行にはインデントが必要です。
なので正しく書くと以下のようになります。
コード: 全て選択
on join:
   player have permission "skript.lank.minarai"
   if {money.%player%} is greater than or equal to 5000:
      console command "/pex group Normal user add %player%"
      console command "/pex group Minarai user remove %player%"
      message "ランクが&7&l[見習い]&r&fから&e&l[ノーマル]&r&fになりました!"

また、今回の場合はifでの分岐がないので、以下のように書くことも可能です。
コード: 全て選択
on join:
   player have permission "skript.lank.minarai"
   {money.%player%} is greater than or equal to 5000
   console command "/pex group Normal user add %player%"
   console command "/pex group Minarai user remove %player%"
   message "ランクが&7&l[見習い]&r&fから&e&l[ノーマル]&r&fになりました!"


次に、グループの判断文ですが、SkActionというアドオンを利用することにより、%player%'s group又はgroup of %player%で確認することができます。
現在のpermission判断ではAdmin等ワイルドカードがついているグループも当てはまってしまうのでそちらを使うのが賢明かもしれませんね。
Mon_chi
ID:27560229
鉄鉱掘り
 
記事: 280
登録日時: 2014年11月20日(木) 19:58

  • (PostNo.256635)

Re: 【Skript】権限と所持金のダブル条件処理

投稿記事by Siketyan » 2015年12月13日(日) 10:58

わかりやすい説明ありがとうございます!
インデントありとなしがあって複雑ですね・・・
グループについてはAdminのワールドカードからskript.lank~を抜いて対応したいと思います。
本当にありがとうございました!!
画像
アバター
Siketyan
ID:2f7d6884
石掘り
 
記事: 77
登録日時: 2015年3月25日(水) 17:19
お住まい: こ↑こ↓


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

x