[解決済み][Skript]カラーコードを上書きする方法を探しています

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

[解決済み][Skript]カラーコードを上書きする方法を探しています

投稿記事by nowa0131 » 2017年9月18日(月) 02:36

変数にカラーコードが適用されたテキストを代入し、
その変数を用いて
コード: 全て選択
variables:
         {_text} = "&7Test"

on rightclick:
        set {_text} to "&6{_text}"
        message "%{_text}%"

のようにカラーコードを上書きしたいのですが最初に代入した物が残り上書きできません。
&6を<gold>に変えたりsubtract "&7" from {_text}などと試行錯誤してみたものの掠りもせず・・・
上書きに限らず別の方法でも構いません。よろしくお願いします。

Spigot-1.10.2
Skript-2.2dev31
最後に編集したユーザー nowa0131 [ 2017年9月18日(月) 14:06 ], 累計 1 回
nowa0131
ID:877ae957
木を殴ってる
 
記事: 18
登録日時: 2013年2月03日(日) 12:17

  • (PostNo.307966)

Re: [Skript]カラーコードを上書きする方法を探しています

投稿記事by 猫96 » 2017年9月18日(月) 03:05

&6で指定しても&7で上書きされてしまっているので、最初に変数をセットするときにカラーコードを使わず、その変数を使用する際にカラーコードを設定するようにしてみては?
猫96
ID:f2f4ac0c
 

  • (PostNo.307981)

Re: [Skript]カラーコードを上書きする方法を探しています

投稿記事by nowa0131 » 2017年9月18日(月) 10:34

猫96 さんが書きました:&6で指定しても&7で上書きされてしまっているので、最初に変数をセットするときにカラーコードを使わず、その変数を使用する際にカラーコードを設定するようにしてみては?

本来ならそれでいいんですが、
コード: 全て選択
set {lore2.%player%} to line 2 of lore of player's tool
if {lore2.%player%} contains "&7":
        set line 2 of lore of player's tool to "&6%{lore2.%player%}%"

(line 2 of lore of player's toolが色つき文字を含む)
のようにアイテムの情報を入れてカラーコードで区別する、とやりたかったんです・・・
具体的にどう使うか書いて無くて申し訳ないです
nowa0131
ID:877ae957
木を殴ってる
 
記事: 18
登録日時: 2013年2月03日(日) 12:17

  • (PostNo.307992)

Re: [Skript]カラーコードを上書きする方法を探しています

投稿記事by mcgo » 2017年9月18日(月) 13:30

nowa0131 さんが書きました:(line 2 of lore of player's toolが色つき文字を含む)
のようにアイテムの情報を入れてカラーコードで区別する、とやりたかったんです・・・
具体的にどう使うか書いて無くて申し訳ないです


Skunityで調べてみましたが何もヒットしなかったので探すのにだいぶ苦労すると思います。
色々調べてたら見つかりましたのでご紹介致します。
コード: 全て選択
variables:
   {custom-lore%player%} = "&atest"

command /1:
   trigger:
      broadcast "%{custom-lore%player%}%"

command /2:
   trigger:
      set {custom-lore%player%} to uncolored "%{custom-lore%player%}%"
      broadcast "%{custom-lore%player%}%"

command /3:
   trigger:
      set {custom-lore%player%} to "&b%{custom-lore%player%}%"
      broadcast "%{custom-lore%player%}%"


見たら分かると思いますが、変数に『&atest』を初期設定しときます。
最初のコマンドではもちろんそのままtestと表示されます。
本題はここからで、2つ目のコマンドの
コード: 全て選択
set {custom-lore%player%} to uncolored "%{custom-lore%player%}%"

この部分で全てのカラーコードをリセットして変数に代入しています。
そして3つ目のコマンドで新たな色を指定することでtestと表示されます。

nowa0131さんのやりたいことはおそらく上記のコードで出来ると思います。

Skriptで分からないときについて
コードの書き方が分からない時は大抵Skunityで単語検索すれば解決します。
しかし、なかにはSkunityにも載ってないものもあったりします。そういう時は普通にGoogleで検索すると良いです。
僕の場合はとりあえず単語を並べて検索しています。 例⇒『skript remove color cord』
今回は例のように検索したら解決策が出てきました。
これは非公式フォーラムで質問するなという意味ではなくより速く回答を得る一つのコツという意味で捉えていただければ幸いです。
サーバー関係の分からないことは英語で検索したら案外出ててくるで!
だってMinecraftって海外生まれやで!
最近はSkriptを使って色々自作してサーバー作ってます。
もしよければSkript作成してもいいゾ(激ムズは拒否するかも・・・)
詳しくはPMで!
【Skript自作コード公開中】
アバター
mcgo
ID:4300d720
石炭掘り
 
記事: 238
登録日時: 2016年11月04日(金) 00:05

  • (PostNo.307994)

Re: [Skript]カラーコードを上書きする方法を探しています

投稿記事by nowa0131 » 2017年9月18日(月) 14:06

mcgo さんが書きました:snip

uncoloredノードで無事動作確認できました!

SkUnityでは念入りに探していたのですがGoogleでは検索が浅かったと思うので、
今後はGoogleも活用していきます。解答ありがとうございました。

追記:
コード: 全て選択
replace "&7" in {lore.%player%} with "&6"

で短略化できました
nowa0131
ID:877ae957
木を殴ってる
 
記事: 18
登録日時: 2013年2月03日(日) 12:17


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

x