while構文の想定外の動き(条件にあってなくてもとまらない)

function spawnGunnerMob(loc: location) :: entity:
spawn zombie at {_loc}
set {_entity} to last spawned entity
while {_entity} is alive:
if {_entity} is not alive:
broadcast "test"
exit 1 sections
function spawnGunnerMob(loc: location) :: entity:
spawn zombie at {_loc}
set {_entity} to last spawned entity
while {_entity} is alive:
if {_entity} is not alive:
broadcast "test"
exit 1 sections
mobをスポーンさせ、while aliveで生きている間の処理をする関数です {_entity}が死んでもwhileがとまりません… test も表示されてないので{_entity} is no alive自体動いてなさそうです ほかの処理では{_entity}ちゃんと使えてるので、ここだけだと思います エラー無いです
8 Replies
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
上のコードでwhileが止まらないかつif動いてないとなると whileの無限ループ起きてサーバー止まりそうだけど そういうことになってる?
Tsukineko(月雲)
wait 10 tickしてるのでまあ鯖死にはしないんですけど モブを出すたびにwhileが蓄積していき やがて処理落ちします @mirageeeeeeeeeeeeeeeeeeeeeeeeeee :: entity: を消したらちゃんと止まりました なぜ… デスポーン(ワールドのいどう)などで消えるとwhileが維持されました
yukkina
yukkina9mo ago
while trueと stop ifだとどうなの
Tsukineko(月雲)
world1でこいつをspawnさせて warld2に移動したのち 改めてworld1に行ったところ 画像のように、 まるでそこに透明な{_entity}がいるかのように ワールド移動の直前まで{_entity}がいた場所で延々と処理が続いていました
No description
Tsukineko(月雲)
地面に散らばってるやつと飛び出てるやつは 薬莢アイテムです つまりこの虚無空間から雪玉を発射している奴がいます (殴ったりkillしても判定なし) ログの50は health of {_entity}です やはりいるはずのないentityが底にある判定になっています なんだこりゃ… まとめ {_entity}がデスポーンした場合に限り
{_entity} is alive
health of {_entity} <= 0
{_entity} is alive
health of {_entity} <= 0
どちらの条件も動きませんでした デスポーン時にも正常にストップさせる方法どなたかご存じでしたら教えてください
puzzle
puzzle9mo ago
久々にSkHubみたらこんなのがあるってさ https://skripthub.net/docs/?id=9472
Skript Hub - Documentation
Is Valid (Condition) - Skript
Checks whether an entity has died or been despawned for some other reason.
puzzle
puzzle9mo ago
Skript2.7以上が必要らしいけど
Tsukineko(月雲)
2.7…(´・ω・`)
Want results from more Discord servers?
Add your server
More Posts
採掘時の確率scriptsのキル時確率版の作成以下のscriptsのキルした時版が作りたいです!! 『on break: event-block is diamond_ore chance of 20%: giveset lore of tool of player to "あああ" with ・・・この文で繋げていくとis not an nbt compoundとエラーが発生し、アイテムにloreを複数行つけられません。set the lineなどでラインを絞ってloreをsetしようとしたのでエンダーパールのようなクールダウンエフェクト?を特定のアイテムに付けたいServer 1.20.1 Skript 2.7.0OneBlockの用にランダムなブロックを置きたいがリセットコマンドの方だけうまくいく!?``` on break: set {_loc} to location(0.5,64.5,0.5,world "oneblock") if event-block's locatioskript Ver.2.7.0の「give」で与えるアイテムをエンチャント付与だけではなく名前と説明文も変えたいexecute console command "ゲーム内コマンド"で出来るとの情報を得たのでしてみたところ名前等の変更コマンドに対応してなく、giveコマンドを調べたのですが、エンチャント付与以外見銃のサンプルコードが欲しいこれまで矢の射撃速度を上げて疑似的な銃として使用していましたが、エフェクトを射線につけることができなくて他の方法で弾丸を射撃できるようにしたいです。どなたかサンプルコードをください Skript 2.リスト変数にテキストを入れたい```command /setname [<text>]: permission: op permission message: &cあなたは運営ではありません aliaseson console log ではspawnが使えない!?**コード**``` # location指定を関数にしてみた # 動作自体は正常 function lobbyLocation() :: location: set {_loc} to loNPCに防具を持ってクリックしたときに装備されないようにしたい``` Citizen Right Click: if npc is named "test": cancel event send "a" ``` みたいな感skript作動しないSkriptは動かないです Spigot 1.17.1 Skript 2.7.0