プレイヤーから、プレイヤーの目線の5ブロック先までダメージ判定を与える方法
ビームを作ってみたいのですが、loop entitiesとか使っても上手くできません...毎度の如く、トライアンドエラーで1時間半ぐらい経過して分からなかったので聞きに来ました
18 Replies
実際にどんなコード書いたのかわかれば
アドバイスしやすい
全部作って なら話は別だけど
雪玉を0.1mごとに召喚して当たったらダメージ
できるかなーって思って気になったから書いちゃった
雪玉の棒がみょいーんって伸びていくのがキモいけど一応動きました
on projectile hitは cancel eventできないのに on projectile collideはできるのうれしい
on projectile collide: でcant understand this event出た....
loop all entities のあとに、front 5 blocks of playerみたいなのつけれないかなとか思って調べてました
これ見てfrontでもできないかなーとか思って
Skript-paperを導入
↑アドオン
そしてraytraceを使用
on projectile collideはskBeeだった
rayTraceとかいう便利なのあるんだつよ
両方あるやで
なんならSkript本体にも2.5から追加されてるっぽい
これって結局難しい感じですか
できるよ
set {_e::*} to all living entities where [distance between player and input <= 4]
ぼくの解決法:
https://skripthub.net/docs/?id=4443
大量の雪玉を前方5mに一瞬で敷き詰めて、当たったらダメージ与える
みらげの解決法:
https://skripthub.net/docs/?id=8344
実体の無い光線を前方に出して、物やエンティティに当たるかどうかの結果を出してくれるので、ダメージを与える
なるほど!!
なんかこれ違った
プレイヤーを中心とした半径4ブロックになってた
あ、ごめん俺の勘違い
中心から4ブロックだと思ってた
プレイヤーの見ている方向..?というか、プレイヤーの前方nブロック を変数に入れてmake player damage {_loc} by 100 みたいにできないかなー
って思ってます
これも試したんですけどraytraceがうまくいかない;;
ヒント
vector from yaw player's yaw pitch player's pitch
location~vector
loop entities in radius n around location
今気づいたけどこれよく見たらわかるはずだな
これやりたいならblock n meters in front of playerみたいなの使えるけどおすすめしない
応用を考えるとvector使ってほしい
なぜかloop 50 times:のところの数値を変えても↓のような場合だと一切相手に当たらないのですが
なんなら↑のような場合でなくとも5ブロックぐらいまでしかあたらない...
これもしかして add 0.1 to vector length of {_angle} ちがう?
add {_angle} to {_head} にしてみた
flameはうまくいきました!!!!!!!!!!!!!!!!!!!!!!!!
flameがあたってるモブにダメージが通ってないことが多々あります
多分悪いのここって思ってるんですけど
どう直せばいいかわからない
!!
1.5にしたらいい感じになった!
vectorの仕様少し理解できたかも
二時間メモ帳とにらめっこした甲斐がありました
そのまま数学のvectorにも行くぞ