├── .gitignore ├── 3rd_spectator.lua ├── 3rd_training.lua ├── README.md ├── data ├── sfiii3nr1 │ ├── framedata │ │ ├── alex_framedata.json │ │ ├── chunli_framedata.json │ │ ├── dudley_framedata.json │ │ ├── elena_framedata.json │ │ ├── gouki_framedata.json │ │ ├── hugo_framedata.json │ │ ├── ibuki_framedata.json │ │ ├── ken_framedata.json │ │ ├── makoto_framedata.json │ │ ├── necro_framedata.json │ │ ├── oro_framedata.json │ │ ├── q_framedata.json │ │ ├── remy_framedata.json │ │ ├── ryu_framedata.json │ │ ├── sean_framedata.json │ │ ├── twelve_framedata.json │ │ ├── urien_framedata.json │ │ ├── yang_framedata.json │ │ └── yun_framedata.json │ ├── framedata_meta.lua │ └── savestates │ │ └── character_select.fs └── sfiii4n │ ├── framedata │ ├── alex_framedata.json │ ├── chunli_framedata.json │ ├── dudley_framedata.json │ ├── elena_framedata.json │ ├── gill_framedata.json │ ├── gouki_framedata.json │ ├── hugo_framedata.json │ ├── ibuki_framedata.json │ ├── ken_framedata.json │ ├── makoto_framedata.json │ ├── necro_framedata.json │ ├── oro_framedata.json │ ├── q_framedata.json │ ├── remy_framedata.json │ ├── ryu_framedata.json │ ├── sean_framedata.json │ ├── shinakuma_framedata.json │ ├── twelve_framedata.json │ ├── urien_framedata.json │ ├── yang_framedata.json │ └── yun_framedata.json │ ├── framedata_meta.lua │ └── savestates │ └── character_select.fs ├── images ├── big │ ├── 1_dir.png │ ├── 2_dir.png │ ├── 3_dir.png │ ├── 4_dir.png │ ├── 5_dir.png │ ├── 6_dir.png │ ├── 7_dir.png │ ├── 8_dir.png │ ├── 9_dir.png │ ├── H_button.png │ ├── L_button.png │ ├── M_button.png │ └── no_button.png └── small │ ├── 1_dir.png │ ├── 2_dir.png │ ├── 3_dir.png │ ├── 4_dir.png │ ├── 5_dir.png │ ├── 6_dir.png │ ├── 7_dir.png │ ├── 8_dir.png │ ├── 9_dir.png │ ├── HK_button.png │ ├── HP_button.png │ ├── LK_button.png │ ├── LP_button.png │ ├── MK_button.png │ └── MP_button.png ├── saved ├── _ └── recordings │ ├── A_Guard_Jump_Back.json │ ├── A_Guard_Jump_Forward.json │ ├── A_Guard_Jump_Neutral.json │ └── _ └── src ├── attack_data.lua ├── character_select.lua ├── display.lua ├── draw.lua ├── frame_advantage.lua ├── framedata.lua ├── gamestate.lua ├── input_history.lua ├── libs └── dkjson.lua ├── memory_adresses.lua ├── menu_widgets.lua ├── startup.lua └── tools.lua /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/.gitignore -------------------------------------------------------------------------------- /3rd_spectator.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/3rd_spectator.lua -------------------------------------------------------------------------------- /3rd_training.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/3rd_training.lua -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/README.md -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/alex_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/alex_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/chunli_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/chunli_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/dudley_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/dudley_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/elena_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/elena_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/gouki_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/gouki_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/hugo_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/hugo_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/ibuki_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/ibuki_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/ken_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/ken_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/makoto_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/makoto_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/necro_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/necro_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/oro_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/oro_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/q_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/q_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/remy_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/remy_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/ryu_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/ryu_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/sean_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/sean_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/twelve_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/twelve_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/urien_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/urien_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/yang_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/yang_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata/yun_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata/yun_framedata.json -------------------------------------------------------------------------------- /data/sfiii3nr1/framedata_meta.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/framedata_meta.lua -------------------------------------------------------------------------------- /data/sfiii3nr1/savestates/character_select.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii3nr1/savestates/character_select.fs -------------------------------------------------------------------------------- /data/sfiii4n/framedata/alex_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/alex_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/chunli_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/chunli_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/dudley_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/dudley_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/elena_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/elena_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/gill_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/gill_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/gouki_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/gouki_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/hugo_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/hugo_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/ibuki_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/ibuki_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/ken_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/ken_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/makoto_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/makoto_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/necro_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/necro_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/oro_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/oro_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/q_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/q_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/remy_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/remy_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/ryu_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/ryu_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/sean_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/sean_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/shinakuma_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/shinakuma_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/twelve_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/twelve_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/urien_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/urien_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/yang_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/yang_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata/yun_framedata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata/yun_framedata.json -------------------------------------------------------------------------------- /data/sfiii4n/framedata_meta.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/framedata_meta.lua -------------------------------------------------------------------------------- /data/sfiii4n/savestates/character_select.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/data/sfiii4n/savestates/character_select.fs -------------------------------------------------------------------------------- /images/big/1_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/1_dir.png -------------------------------------------------------------------------------- /images/big/2_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/2_dir.png -------------------------------------------------------------------------------- /images/big/3_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/3_dir.png -------------------------------------------------------------------------------- /images/big/4_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/4_dir.png -------------------------------------------------------------------------------- /images/big/5_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/5_dir.png -------------------------------------------------------------------------------- /images/big/6_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/6_dir.png -------------------------------------------------------------------------------- /images/big/7_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/7_dir.png -------------------------------------------------------------------------------- /images/big/8_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/8_dir.png -------------------------------------------------------------------------------- /images/big/9_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/9_dir.png -------------------------------------------------------------------------------- /images/big/H_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/H_button.png -------------------------------------------------------------------------------- /images/big/L_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/L_button.png -------------------------------------------------------------------------------- /images/big/M_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/M_button.png -------------------------------------------------------------------------------- /images/big/no_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/big/no_button.png -------------------------------------------------------------------------------- /images/small/1_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/1_dir.png -------------------------------------------------------------------------------- /images/small/2_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/2_dir.png -------------------------------------------------------------------------------- /images/small/3_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/3_dir.png -------------------------------------------------------------------------------- /images/small/4_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/4_dir.png -------------------------------------------------------------------------------- /images/small/5_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/5_dir.png -------------------------------------------------------------------------------- /images/small/6_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/6_dir.png -------------------------------------------------------------------------------- /images/small/7_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/7_dir.png -------------------------------------------------------------------------------- /images/small/8_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/8_dir.png -------------------------------------------------------------------------------- /images/small/9_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/9_dir.png -------------------------------------------------------------------------------- /images/small/HK_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/HK_button.png -------------------------------------------------------------------------------- /images/small/HP_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/HP_button.png -------------------------------------------------------------------------------- /images/small/LK_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/LK_button.png -------------------------------------------------------------------------------- /images/small/LP_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/LP_button.png -------------------------------------------------------------------------------- /images/small/MK_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/MK_button.png -------------------------------------------------------------------------------- /images/small/MP_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/images/small/MP_button.png -------------------------------------------------------------------------------- /saved/_: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /saved/recordings/A_Guard_Jump_Back.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/saved/recordings/A_Guard_Jump_Back.json -------------------------------------------------------------------------------- /saved/recordings/A_Guard_Jump_Forward.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/saved/recordings/A_Guard_Jump_Forward.json -------------------------------------------------------------------------------- /saved/recordings/A_Guard_Jump_Neutral.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/saved/recordings/A_Guard_Jump_Neutral.json -------------------------------------------------------------------------------- /saved/recordings/_: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/attack_data.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/attack_data.lua -------------------------------------------------------------------------------- /src/character_select.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/character_select.lua -------------------------------------------------------------------------------- /src/display.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/display.lua -------------------------------------------------------------------------------- /src/draw.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/draw.lua -------------------------------------------------------------------------------- /src/frame_advantage.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/frame_advantage.lua -------------------------------------------------------------------------------- /src/framedata.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/framedata.lua -------------------------------------------------------------------------------- /src/gamestate.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/gamestate.lua -------------------------------------------------------------------------------- /src/input_history.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/input_history.lua -------------------------------------------------------------------------------- /src/libs/dkjson.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/libs/dkjson.lua -------------------------------------------------------------------------------- /src/memory_adresses.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/memory_adresses.lua -------------------------------------------------------------------------------- /src/menu_widgets.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/menu_widgets.lua -------------------------------------------------------------------------------- /src/startup.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/startup.lua -------------------------------------------------------------------------------- /src/tools.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Grouflon/3rd_training_lua/HEAD/src/tools.lua --------------------------------------------------------------------------------