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の無限ループ起きてサーバー止まりそうだけど そういうことになってる?
月猫ch
月猫chOP14mo ago
wait 10 tickしてるのでまあ鯖死にはしないんですけど モブを出すたびにwhileが蓄積していき やがて処理落ちします @mirageeeeeeeeeeeeeeeeeeeeeeeeeee :: entity: を消したらちゃんと止まりました なぜ… デスポーン(ワールドのいどう)などで消えるとwhileが維持されました
yukkina
yukkina14mo ago
while trueと stop ifだとどうなの
月猫ch
月猫chOP14mo ago
world1でこいつをspawnさせて warld2に移動したのち 改めてworld1に行ったところ 画像のように、 まるでそこに透明な{_entity}がいるかのように ワールド移動の直前まで{_entity}がいた場所で延々と処理が続いていました
No description
月猫ch
月猫chOP14mo ago
地面に散らばってるやつと飛び出てるやつは 薬莢アイテムです つまりこの虚無空間から雪玉を発射している奴がいます (殴ったりkillしても判定なし) ログの50は health of {_entity}です やはりいるはずのないentityが底にある判定になっています なんだこりゃ… まとめ {_entity}がデスポーンした場合に限り
{_entity} is alive
health of {_entity} <= 0
{_entity} is alive
health of {_entity} <= 0
どちらの条件も動きませんでした デスポーン時にも正常にストップさせる方法どなたかご存じでしたら教えてください
puzzle
puzzle14mo 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
puzzle14mo ago
Skript2.7以上が必要らしいけど
月猫ch
月猫chOP14mo ago
2.7…(´・ω・`)
Want results from more Discord servers?
Add your server