reloadになぜ時間がかかってしまうか
function makeparticleline(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, step: number,player: player):
set {_dx} to {_x2} - {_x1}
set {_dy} to {_y2} - {_y1}
set {_dz} to {_z2} - {_z1}
set {_len} to sqrt({_dx}^2 + {_dy}^2 + {_dz}^2)
set {_steps} to floor({_len} / {_step})
loop {_steps} times:
set {_t} to {_i} / {_steps}
set {_pos} to location({_x1} + {_dx} * {_t}, {_y1} + {_dy} * {_t}, {_z1} + {_dz} * {_t})
play flame at {_pos} to {_player}
5 Replies
2点を指定してパーティクルの線を作るようなskriptが書きたい
skript 2.11.1
200秒ぐらいかかります
location({_x1} + {_dx} * {_t}, {_y1} + {_dy} * {_t}, {_z1} + {_dz} * {_t})のパースに時間がかかっている可能性があるので、各引数を()で囲ったりしてみてください
また、
function makeparticleline(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, step: number,player: player):
の解析に時間がかかっている可能性もあるので、引数をlocation型で取るのを検討してみてください
詳しくはこちらを
https://discord.com/channels/545926404785569793/1306663518778425414
()で囲ったら31msで行けました
なんで??
ここがexpressionというのを明示することによって早くパースしてくれます
引数定義にはこの方法が使えないのでlocationとして受け取るぐらいしか方法が思いつきません
(もしくはvector)
skript の parser がカスなので
再帰がぐろいことになっています