[クソ長コード]コードの軽量化

ymlを読み込み、内容を変数に保存していくコードなのですが 如何せん処理に時間がかかっていて… これを軽量化する方法はないでしょうか
14 Replies
月猫ch
月猫chOP13mo ago
やってることとしては ①ymlファイルをloop ②keyのリストをもとに、該当する内容が書いてあるか確認 ③書いてあれば、諸々の要素を変数に代入 なお loop files in dir "plugins/CrackShot/weapons"➡50loop loop {key::Gun::*} and {key::Ammo::*}:➡250loop くらいです… これはもうどうしようもない処理の遅さなのでしょうか…
月猫ch
月猫chOP13mo ago
sk info
No description
何か
何か13mo ago
async:
月猫ch
月猫chOP13mo ago
asyncあるんですか!?!?!?!? MundoSKのasync set A to Bを使うってことでしょうか
何か
何か13mo ago
普通にasync:で sectionの中に突っ込めば 非同期になる
月猫ch
月猫chOP13mo ago
loop {key::Gun::*} and {key::Ammo::*}:
async:
処理~
loop {key::Gun::*} and {key::Ammo::*}:
async:
処理~
こういうことすか エラーは吐かなかったけどYMLの中身が読み込まれなかったです…
何か
何か13mo ago
asyncはローカル変数を保持しない 全く別のセクションとして考える必要がある
月猫ch
月猫chOP13mo ago
えぇ
yukkina
yukkina13mo ago
これほんま嫌い
unnnnnnnnnnn
unnnnnnnnnnn13mo ago
skreflectのasyncで引数渡せなかったっけ
unnnnnnnnnnn
unnnnnnnnnnn13mo ago
Skript Hub - Documentation
CondSection (Condition) - skript-reflect
For more information on skript-reflect, you can visit the wiki here: https://tpgamesnl.gitbook.io/skript-reflect/
unnnnnnnnnnn
unnnnnnnnnnn13mo ago
Skript Hub - Documentation
EffRunSection (Effect) - skript-reflect
For more information on skript-reflect, you can visit the wiki here: https://tpgamesnl.gitbook.io/skript-reflect/
のしぇあ
のしぇあ13mo ago
試してないのでわからないですが、最終リロード日時とymlファイルの最終更新日時を比較して読み込むべきファイルを選べば、ある程度処理回数を減らせるかもしれないです https://skripthub.net/docs/?id=166
Skript Hub - Documentation
File Last Modified, Last Accessed, Creation Date (Expression) - skU...
Returns when the file was last changed (modified), last accessed, and created
月猫ch
月猫chOP13mo ago
それと似たようなことできないかなと思って
loop files in dir "plugins/CrackShot/weapons":
wait 1 tick
set {_name} to name of file loop-value
{_name} doesn't start with "__"
{_name} starts with "_gun" or "_ammo"
set {_path} to "plugins/CrackShot/weapons/%{_name}%.yml"
set {_line::*} to file contents of {_path}
set {_checkFlag} to false
if {csFile::%{_name}%::*} is not {_line::*}:
set {csFile::%{_name}%::*} to {_line::*}
broadcast "check! -> %{_name}%
set {_checkFlag} to true"
loop files in dir "plugins/CrackShot/weapons":
wait 1 tick
set {_name} to name of file loop-value
{_name} doesn't start with "__"
{_name} starts with "_gun" or "_ammo"
set {_path} to "plugins/CrackShot/weapons/%{_name}%.yml"
set {_line::*} to file contents of {_path}
set {_checkFlag} to false
if {csFile::%{_name}%::*} is not {_line::*}:
set {csFile::%{_name}%::*} to {_line::*}
broadcast "check! -> %{_name}%
set {_checkFlag} to true"
file contentsを比較して 最後のreloadから内容が変わっていればそのファイルの内容を再読み込みする という風にしようとしたのですが 更新されていない、中身が一致しているはずのファイルも読み込みされてしまいます… これって仕様なのでしょうか… おとなしく更新日時比較にしました!!
set {_path} to "plugins/CrackShot/weapons/%{_name}%.yml"
set {_when} to file {_path}'s last modified value
set {_line::*} to file contents of {_path}
set {_checkFlag} to false
broadcast "check! -> &e%{_name}% &7(%{_chekingAmount}% / %{_fileAmount}%)"
if {csFileTime::%{_name}%} is not {_when}:
broadcast "check! -> %{_name}%(%{_when}%)"
set {csFileTime::%{_name}%} to {_when}
set {_checkFlag} to true
set {_path} to "plugins/CrackShot/weapons/%{_name}%.yml"
set {_when} to file {_path}'s last modified value
set {_line::*} to file contents of {_path}
set {_checkFlag} to false
broadcast "check! -> &e%{_name}% &7(%{_chekingAmount}% / %{_fileAmount}%)"
if {csFileTime::%{_name}%} is not {_when}:
broadcast "check! -> %{_name}%(%{_when}%)"
set {csFileTime::%{_name}%} to {_when}
set {_checkFlag} to true
Want results from more Discord servers?
Add your server