skriptで体温(?)のようなものを作りたい
溶岩や焚火に近づいたときに体温が上がるようなことをしたいのですがlightlevelなどを使おうと思いました。
でも太陽の光などでずっと15になってしまいます他にいい方法や案はありますでしょうか
20 Replies
まあそうなるかな
確か ブロックによる発行のlightlevelとskye light level みたいな二つのパラメータなかったっけ
なるほど
sunlight levelが日光の光、
block light levelで日光関係ない光レベルを指定できると思います。
たいまつに近づいても体温が上がるようになってしまいますけどね...
寒さを作るために
このようなものを作ったのですがこのままだとプレイヤーの半径10ブロックの中にある雪ブロックの数分だけ変数に加える値が変わってしまいます
プレイヤーの半径10ブロックの中に雪ブロックがいくつあっても変数に加えられる値が変わらないようにするためにはどうすればいいでしょうか
まじでめちゃくちゃなほうほうを言うとすれば
loopせずに、
all blocks in radius 10 around the loop-player
をリストとして取得して
それを文字列にします
contains "snow" だったら、体温を下げる半径10ブロック以内に1つでも雪ブロックあればいいの?
※
{temperature.%loop-player%}
➡ {temperature::%loop-player%}
(ちなみに、このままだと1tickの間に大量のblockを取得する処理になるので、私は負荷が心配です)はい
blocks in radius 10 around loop-player contain snow block
loop blocksを消して上記conditionsを追記、その下に〜〜>0とadd -1 to 〜〜
『体温減少ブロックを増やす!』っていって
if blocks in radius 10 around loop-player contain BLOCK
if blocks in radius 10 around loop-player contain BLOCK2
if blocks in radius 10 around loop-player contain BLOCK3
とかやってそう
一つ一つ範囲と減少量変えたいのでそうしようと一応してます()
あ~(
圧倒的アホやな
そう言う時の変数だろ
あとそれだとバカ計算量あるから、もう少し工夫した方がいい
ある程度mapが決まってるなら、事前にworldborderとかで設定しておくとか
もしくは、その体温が変動するある程度の領域の中心にマーカーを置くか、変数にでも置いといて計算量を減らすとか
半径10blockの”球”やぞ
それぞれのマーカーに “中心座標“,” 影響力(数値)”とかにでもしておいて、
中心座標から “0<プレイヤーの位置<影響力” までは計算に入れる。
1block離れるごとに体温の上昇は減っていくみたいにすれば
簡単なものが実装できる
条件分岐するたびに blocks in radius してそうで怖いって話ね(
そうしようとしてたんでしょ実際
たぶんそうだろうね
そうなると単純計算で1行のloppで多く見積もって1000回それがブロックごと
アホやな
サバ死ぬわ
正直block でやるんじゃなくて
せめてバイオームとかで制御すればいいとおもった(
マップほぼ何もできてないですね()
固定なら