da92c0e to 3780b41
Bumps [deps/json](https://github.com/nlohmann/json) from `da92c0e` to `3780b41`.
- [Release notes](https://github.com/nlohmann/json/releases)
- [Commits](da92c0e3e7...3780b41dd0)
---
updated-dependencies:
- dependency-name: deps/json
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
iw5-gsc-utils
This plugin adds some useful functions/methods to IW5's GSC VM
Misc
-
executeCommand(command): Executes a console command. -
replaceFunc(what, with): Replaces a function with another:init() { replaceFunc(maps\mp\gametypes\_damage::Callback_PlayerDamage, ::callbackPlayerDamage); } callbackPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset) { } -
addCommand(name, callback): Adds a console command (gets removed after a map restart):init() { addCommand("kill", ::cmd_kill); } cmd_kill(args) { if (args.size < 2) { print("Usage: kill <num>"); return; } num = int(args[2]); player = getEntByNum(num); if (isPlayer(player)) { player suicide(); } }
Player
-
say(message): Prints a message to all players' chat. -
self tell(message): Prints a message to the player's chat. -
self setName(name): Sets a player's name. -
self resetName(name): Resets a player's name to its original. -
self setClantag(name): Sets a player's clantag. -
self resetClantag(name): Resets a player's clantag to its original. -
self removeClantag(name): Removes a player's clantag.
IO
The basepath for all IO functions is Plutonium/storage/iw5
-
fopen(path, mode): Opens a file of given name with given mode, returns a file stream. -
fwrite(stream, text): Writes a string to a stream. -
fread(stream): Reads entire file. -
fclose(stream): Closes a file stream. -
fremove(path): Deletes a file.init() { basePath = getDvar("fs_basegame") + "/"; file = fopen(basePath + "test.txt", "w"); fwrite(file, "test"); fclose(file); file = fopen(basePath + "test.txt", "r"); print(fread(file)); fclose(file); } -
fileExists(path): Returns true if the file exists. -
writeFile(path, data[, append]): Creates a file if it doesn't exist and writes/appends text to it. -
readFile(path): Reads a file. -
fileSize(path): Returns file size in bytes. -
createDirectory(path): Creates a directory. -
directoryExists(path): Returns true if the directory exists. -
directoryIsEmpty(path): Returns true if the directory is empty. -
listFiles(path): Returns the list of files in the directory as an array. -
copyFolder(source, target): Copies a folder.
JSON
-
jsonSerialize(variable[, indent]): Converts GSC variables (such as arrays) into JSON:init() { array = []; array[0] = 1; array[1] = 2; json = jsonSerialize(array, 4); print(json); /* [script]: [ 2, 1 ] */ }This function can also be useful to reveal contents of existing arrays such as
game:init() { print(jsonSerialize(game["allies_model"], 4)); /* [script]: { "ASSAULT": "[function]", "GHILLIE": "[function]", "JUGGERNAUT": "[function]", "LMG": "[function]", "RIOT": "[function]", "SHOTGUN": "[function]", "SMG": "[function]", "SNIPER": "[function]" } */ print(jsonSerialize(game["music"], 4)); /* [script]: { "defeat_allies": "UK_defeat_music", "defeat_axis": "IC_defeat_music", "losing_allies": "UK_losing_music", "losing_axis": "IC_losing_music", "losing_time": "mp_time_running_out_losing", "nuke_music": "nuke_music", "spawn_allies": "UK_spawn_music", "spawn_axis": "IC_spawn_music", "suspense": [ "mp_suspense_06", "mp_suspense_05", "mp_suspense_04", "mp_suspense_03", "mp_suspense_02", "mp_suspense_01" ], "victory_allies": "UK_victory_music", "victory_axis": "IC_victory_music", "winning_allies": "UK_winning_music", "winning_axis": "IC_winning_music" } */ } -
jsonParse(json): Converts JSON into a GSC variable:init() { array = jsonParse("[1,2,3,4]"); print(array[0] + " " + array[1] + " " + array[2] + " " + array[3]); /* [script]: 1 2 3 4 */ } -
array(...): Creates an array from arguments, not very relevant to JSON but can be useful to make code look better.Instead of doing this:
init() { array = []; array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; print(jsonSerialize(array, 4)); /* [script]: [ 4, 3, 2, 1 ] */ }You can do this:
init() { array = array(1, 2, 3, 4); print(jsonSerialize(array, 4)); /* [script]: [ 4, 3, 2, 1 ] */ } -
map(...): Simlar toarray(...)but creates a string-indexed array:init() { array = map("first", 1, "second", 2); print(jsonSerialize(array, 4)); /* [script]: { "first": 1, "second": 2 } */ } -
jsonPrint(...): Prints values as json.