fix errors

ExtraCommands: add sm_setmvp
This commit is contained in:
BotoX 2017-08-12 15:06:41 +02:00
parent 9c4735659c
commit 68387329f2
6 changed files with 67 additions and 3 deletions

View File

@ -53,6 +53,7 @@ public void OnPluginStart()
RegAdminCmd("sm_setmodel", Command_SetModel, ADMFLAG_GENERIC, "sm_setmodel <#userid|name> <modelpath>");
RegAdminCmd("sm_setscore", Command_SetScore, ADMFLAG_GENERIC, "sm_setscore <#userid|name> <value>");
RegAdminCmd("sm_setdeaths", Command_SetDeaths, ADMFLAG_GENERIC, "sm_setdeaths <#userid|name> <value>");
RegAdminCmd("sm_setmvp", Command_SetMvp, ADMFLAG_GENERIC, "sm_setmvp <#userid|name> <value>");
RegAdminCmd("sm_setteamscore", Command_SetTeamScore, ADMFLAG_GENERIC, "sm_setteamscore <team> <value>");
RegAdminCmd("sm_waila", Command_WAILA, ADMFLAG_GENERIC);
RegAdminCmd("sm_info", Command_WAILA, ADMFLAG_GENERIC);
@ -1001,6 +1002,51 @@ public Action Command_SetDeaths(int client, int argc)
return Plugin_Handled;
}
public Action Command_SetMvp(int client, int argc)
{
if(argc < 2)
{
ReplyToCommand(client, "[SM] Usage: sm_setmvp <#userid|name> <value>");
return Plugin_Handled;
}
char sArgs[32];
char sArgs2[32];
char sTargetName[MAX_TARGET_LENGTH];
int iTargets[MAXPLAYERS];
int iTargetCount;
bool bIsML;
GetCmdArg(1, sArgs, sizeof(sArgs));
GetCmdArg(2, sArgs2, sizeof(sArgs2));
int iVal = StringToInt(sArgs2);
if((iTargetCount = ProcessTargetString(sArgs, client, iTargets, MAXPLAYERS, 0, sTargetName, sizeof(sTargetName), bIsML)) <= 0)
{
ReplyToTargetError(client, iTargetCount);
return Plugin_Handled;
}
for(int i = 0; i < iTargetCount; i++)
{
CS_SetMVPCount(iTargets[i], iVal);
}
if(iTargetCount > 1)
{
ShowActivity2(client, "\x01[SM] \x04", "\x01Set MVP to \x04%d\x01 on target \x04%s", iVal, sTargetName);
LogAction(client, -1, "\"%L\" set MVP to \"%d\" on target \"%s\"", client, iVal, sTargetName);
}
else
{
ShowActivity2(client, "\x01[SM] \x04", "\x01Set MVP to \x04%d\x01 on target \x04%s", iVal, sTargetName);
LogAction(client, iTargets[0], "\"%L\" set MVP to \"%d\" on target \"%L\"", client, iVal, iTargets[0]);
}
return Plugin_Handled;
}
public Action Command_SetTeamScore(int client, int argc)
{
if(argc < 2)

View File

@ -235,7 +235,9 @@ public MRESReturn AcceptInput(int pThis, Handle hReturn, Handle hParams)
if(DHookIsNullParam(hParams, 2))
return MRES_Ignored;
int client = DHookGetParam(hParams, 2);
int client = EntRefToEntIndex(DHookGetParam(hParams, 2));
if(client < 1 || client > MAXPLAYERS)
return MRES_Ignored;
char szInputName[32];
DHookGetParamString(hParams, 1, szInputName, sizeof(szInputName));

View File

@ -122,7 +122,9 @@ public MRESReturn AcceptInput(int pThis, Handle hReturn, Handle hParams)
if(DHookIsNullParam(hParams, 2))
return MRES_Ignored;
int client = DHookGetParam(hParams, 2);
int client = EntRefToEntIndex(DHookGetParam(hParams, 2));
if(client < 1 || client > MAXPLAYERS)
return MRES_Ignored;
if(!g_Client_bEnabled[client])
return MRES_Ignored;

View File

@ -42,7 +42,7 @@ public void OnClientPutInServer(int client)
public void OnWeaponSwitch(int client, int weapon)
{
if(!g_Cvar_QuickSwitch_Knife.BoolValue || ZR_IsClientZombie(client))
if(!g_Cvar_QuickSwitch_Knife.BoolValue || !IsPlayerAlive(client) || ZR_IsClientZombie(client))
return;
char sWeaponName[32];

View File

@ -129,6 +129,10 @@ public void OnEntityCreated(int entity, const char[] classname)
public void OnEntityDestroyed(int entity)
{
// wtf sourcemod?
if(entity == -1)
return;
RemoveWeapon(EntIndexToEntRef(EntRefToEntIndex(entity)));
}

View File

@ -121,3 +121,13 @@ forward Action ZR_OnClientHuman(int &client, bool &respawn, bool &protect);
* @param protect Whether the client has spawn protection.
*/
forward void ZR_OnClientHumanPost(int client, bool respawn, bool protect);
/**
* Called in ZRCreateEligibleClientList to determine if a client is eligible to become infected.
*
* @param client The client index.
*
* @return Plugin_Handled is not eligible. Anything else
* (like Plugin_Continue) is eligible.
*/
forward Action ZR_OnClientMotherZombieEligible(int client);