100 lines
2.8 KiB
PHP
100 lines
2.8 KiB
PHP
|
/*
|
||
|
* ============================================================================
|
||
|
*
|
||
|
* Zombie:Reloaded
|
||
|
*
|
||
|
* File: classcommands.inc
|
||
|
* Description: Console commands for working with classes.
|
||
|
*
|
||
|
* ============================================================================
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Dumps class data at a specified index in the specified cache.
|
||
|
*/
|
||
|
public Action:Command_ClassDump(client, argc)
|
||
|
{
|
||
|
decl String:syntax[1024];
|
||
|
syntax[0] = 0;
|
||
|
|
||
|
if (argc < 2)
|
||
|
{
|
||
|
// Write syntax info.
|
||
|
StrCat(syntax, sizeof(syntax), "Dumps class data at a specified index in the specified cache. Usage: zr_class_dump <cachetype> <index|targetname>\n\n");
|
||
|
StrCat(syntax, sizeof(syntax), "Cache types:\n");
|
||
|
StrCat(syntax, sizeof(syntax), "original - Unmodified class data\n");
|
||
|
StrCat(syntax, sizeof(syntax), "modified - Newest class data\n");
|
||
|
StrCat(syntax, sizeof(syntax), "player - Players class data\n");
|
||
|
ReplyToCommand(client, syntax);
|
||
|
|
||
|
return Plugin_Handled;
|
||
|
}
|
||
|
|
||
|
new cachetype = -1;
|
||
|
new index = -1;
|
||
|
|
||
|
decl String:type[64];
|
||
|
decl String:target[64];
|
||
|
decl String:buffer[2048];
|
||
|
|
||
|
// Quick initialize buffer.
|
||
|
buffer[0] = 0;
|
||
|
|
||
|
// Get cache type.
|
||
|
GetCmdArg(1, type, sizeof(type));
|
||
|
|
||
|
// Set cache type depending on parameter setting.
|
||
|
if (StrEqual(type, "original", false))
|
||
|
{
|
||
|
cachetype = ZR_CLASS_CACHE_ORIGINAL;
|
||
|
}
|
||
|
else if (StrEqual(type, "modified", false))
|
||
|
{
|
||
|
cachetype = ZR_CLASS_CACHE_MODIFIED;
|
||
|
}
|
||
|
else if (StrEqual(type, "player", false))
|
||
|
{
|
||
|
cachetype = ZR_CLASS_CACHE_PLAYER;
|
||
|
|
||
|
// Get client index.
|
||
|
GetCmdArg(2, target, sizeof(target));
|
||
|
index = FindTarget(client, target, _, false);
|
||
|
|
||
|
// Check if failed.
|
||
|
if (index < 0)
|
||
|
{
|
||
|
ReplyToCommand(client, "Invalid target name.");
|
||
|
return Plugin_Handled;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Check if cachetype is valid.
|
||
|
if (cachetype < 0)
|
||
|
{
|
||
|
ReplyToCommand(client, "Invalid cache type.");
|
||
|
return Plugin_Handled;
|
||
|
}
|
||
|
|
||
|
// Validate class index.
|
||
|
if (cachetype != ZR_CLASS_CACHE_PLAYER)
|
||
|
{
|
||
|
// Get class index.
|
||
|
GetCmdArg(2, target, sizeof(target));
|
||
|
index = StringToInt(target);
|
||
|
|
||
|
if (!ClassValidateIndex(index))
|
||
|
{
|
||
|
ReplyToCommand(client, "Invalid class index.");
|
||
|
return Plugin_Handled;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Dump the specified cache.
|
||
|
ReplyToCommand(client, "DUMPING CACHE: \"%s\" (%d classes total)\n========================================\n", type, ClassCount);
|
||
|
ClassDumpData(index, cachetype, buffer, sizeof(buffer));
|
||
|
ZR_ReplyToCommandLong(client, buffer);
|
||
|
|
||
|
return Plugin_Handled;
|
||
|
|
||
|
}
|