- INTRODUCTION -
Hey, back with me again in another thread of my Lua tutorial.
As you expect from the title. On this occasion, i will tell you about how can we check if a file exists or not in our beloved game Bully.
If you guys are familiar with Lua scripting, checking a file existence is probably easy with
io.open function provided by Lua standard library. But, since Bully use a modified-standard library of Lua where I/O facilities do not exists, so we cannot access all I/O functions such as
io.open,
io.read,
io.write, and many more io. So.. we're going to use
loadfile function in order to check if a file exists or not.
This tutorial
may become obsolete for PC version in the future because some people are going to reimplement the Lua 5.0.2 standard library into Bully. However, this method maybe useful for those who want to mod in traditional way without mod dependencies or additional tools to check a file.
- CHECK IF A FILE EXISTS -
Let's be honest here, this is not really tutorial lol. I think, it's more like resource or function library.
I made a custom function based on
loadfile and i will demonstrate how to use it.
1) 'FILE_EXISTS' FUNCTIONFILE_EXISTS = function(PATH, NAME, LUA)
local FILE, INFO = loadfile(PATH..NAME)
local MESSAGE = "'"..NAME.."'"
if FILE then
MESSAGE = MESSAGE.." exists!"
else
MESSAGE = MESSAGE.." "..(string.find(INFO, "parser", 1) and "exists"..(LUA and ", but not compiled!" or "!") or "does not exist!")
end
return MESSAGE
end
Function arguments:
PATH = string, file directory (e.g. "Scripts/")
NAME = string, file name (e.g. "Scripts.img" or "RESOURCE.lur")
LUA = boolean, the file you want to check is Lua script or not (e.g. true or false)
2) EXAMPLE OF USECheck if Lua script exists:
local MSG = FILE_EXISTS("Scripts/", "RESOURCE.lur", true)
TextPrintString(MSG, 4, 1)
Check if Scripts.img exists:
local MSG = FILE_EXISTS("Scripts/", "Scripts.img", false)
TextPrintString(MSG, 4, 1)
Check if Trigger.img exists:
local MSG = FILE_EXISTS("DAT/", "Trigger.img", false)
TextPrintString(MSG, 4, 1)
Check if Music.bin exists:
local MSG = FILE_EXISTS("audio/PLAYLIST/", "Music.bin", false)
TextPrintString(MSG, 4, 1)
Check if PropHXDs.dat exists:
local MSG = FILE_EXISTS("Config/dat/", "PropHXDs.dat", false)
TextPrintString(MSG, 4, 1)
Check if Bully.exe exists:
local MSG = FILE_EXISTS("", "Bully.exe", false)
TextPrintString(MSG, 4, 1)
- CLOSING STATEMENT -
This is my third tutorial in Bully-Board, i hope i'll be able to share some more experiences soon.
Make sure you read all the explanations carefully to avoid any confusion.
Check out my other tutorials:
-
Lua Tutorial: Exceeding 112KB Script Limit-
Lua Tutorial: Non-STimeCycle Freeroam Mods