I've found myself needing to analyze the stringtables a few times, so I wrote a stringtable dumper each time. I realized that this was pretty dumb to keep rewriting it so here it is. Mostly for myself for future reference, but feel free to use it for whatever.
PHP Code:
#include <sourcemod>
#include <sdktools>
public OnMapStart() {
new Handle:file = OpenFile("stringtables.txt", "w");
new num = GetNumStringTables();
decl String:name[32], String:str[256];
for(new i = 0; i < num; i++) {
GetStringTableName(i, name, sizeof(name));
new size = GetStringTableNumStrings(i);
WriteFileLine(file, "[%d] %s [%d/%d]", i, name, size, GetStringTableMaxStrings(i));
for(new j = 0; j < size; j++) {
ReadStringTable(i, j, str, sizeof(str));
WriteFileLine(file, "\t[%d] %s", j, str);
new length = GetStringTableDataLength(i, j);
if(length > 0) {
decl String:data[length + 1];
GetStringTableData(i, j, data, length + 1);
WriteFileLine(file, "\t\t%s", data);
}
}
}
CloseHandle(file);
}
__________________