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
aiiueo
aiiueoOP2mo ago
2点を指定してパーティクルの線を作るようなskriptが書きたい skript 2.11.1 200秒ぐらいかかります
あお
あお2mo ago
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
aiiueo
aiiueoOP2mo ago
()で囲ったら31msで行けました なんで??
あお
あお2mo ago
ここがexpressionというのを明示することによって早くパースしてくれます 引数定義にはこの方法が使えないのでlocationとして受け取るぐらいしか方法が思いつきません (もしくはvector)
tanoKun
tanoKun2mo ago
skript の parser がカスなので 再帰がぐろいことになっています

Did you find this page helpful?