View Single Post
PC Gamer
Veteran Member
Join Date: Mar 2014
Old 06-16-2020 , 20:01   Re: MVMVictory HookUserMessage
Reply With Quote #2

I haven't used HookUserMessage before. But... after reading these:

https://sm.alliedmods.net/new-api/us...ookUserMessage
https://wiki.alliedmods.net/User_mes..._User_Messages

I would probably do something like this:

PHP Code:
#include <sourcemod>
#include <sdktools>

public Plugin:myinfo 
{
    
name "[TF2]Reset Popfile",
    
author "Gurrth",
    
description "Resets current Popfile after a MVM Mission Completes, no map change",
    
version "1.0",
    
url ""
}

public 
OnPluginStart()
{
    
RegConsoleCmd("sm_resetpopfile"command_resetpopfile"resets popfile");
    
    
HookUserMessage(GetUserMessageId("MVMVictory" ), mvm_completetrue); 
}

public 
Action:mvm_complete(UserMsg:msg_idHandle:bf, const players[], playersNumbool:reliablebool:init
{
    
char responseBuffer[4096];
    
int ObjectiveEntity FindEntityByClassname(-1"tf_objective_resource");

    
// Get Popfile Name
    
GetEntPropString(ObjectiveEntityProp_Send"m_iszMvMPopfileName"responseBuffersizeof(responseBuffer));
    
    
// Tell server to change popfile 
    
ServerCommand("tf_mvm_popfile %s"ObjectiveEntity);
}

public 
Action:command_resetpopfile(clientargs)
{
    
char responseBuffer[4096];
    
int ObjectiveEntity FindEntityByClassname(-1"tf_objective_resource");
    
    
// Get Popfile Name
    
GetEntPropString(ObjectiveEntityProp_Send"m_iszMvMPopfileName"responseBuffersizeof(responseBuffer));
    
    
// Tell server to change popfile 
    
ServerCommand("tf_mvm_popfile %s"ObjectiveEntity);

Note: Not tested since I gave up on running MvM long ago after it kept kicking all players every mapchange. I never did receive a solution to that problem. Anyway, I hope this works for you.
PC Gamer is offline