Raised This Month: $51 Target: $400
 12% 

[L4D] ChurchGuy Bug


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Beatles
Senior Member
Join Date: Feb 2014
Old 09-22-2021 , 18:04   [L4D] ChurchGuy Bug
Reply With Quote #1

Sometimes when on my server we play the chapter: l4d_smalltown03_ranchhouse, for some reason the church door never opens, the man inside is heard speaking, but the horde never ends, the bells keep ringing and so the door never opens, I wrote this to try to open the door in a certain time:

PHP Code:
    int ent = -1;
    
    while ((
ent FindEntityByClassname(ent"prop_door_rotating_checkpoint")) != INVALID_ENT_REFERENCE)
    {
        if (!
IsValidEntity(ent) || !IsValidEdict(ent))
        {
            continue;
        }
        
SetEntProp(entProp_Data"m_hasUnlockSequence"0);
        
AcceptEntityInput(ent"Unlock");
        
AcceptEntityInput(ent"Open");
    } 
But this only opens the door, there is still something preventing me from entering, does anyone know how to fix it? or how to force the event to end?
Beatles is offline
Beatles
Senior Member
Join Date: Feb 2014
Old 09-24-2021 , 05:11   Re: [L4D] ChurchGuy Bug
Reply With Quote #2

Can someone help me, or at least remove the church guy event?
Beatles is offline
Marttt
Veteran Member
Join Date: Jan 2019
Location: Brazil
Old 09-24-2021 , 08:08   Re: [L4D] ChurchGuy Bug
Reply With Quote #3

From my testing what blocks you to go inside is this entity:

Class: func_button Targetname: button_safedoor_PANIC HammerID: 2570933 Position: -2560.50 48.00 213.36 Angles: 0.00 0.00 0.00

You can unlock the door by typing
"ent_fire checkpoint_entrance unlock" then "ent_fire checkpoint_entrance open" in console.

Then you will notice that this button_safedoor_PANIC entity is on the way to enter.

If you type "ent_fire button_safedoor_PANIC kill" you will be able to go inside.


Checking the stripper dump
The door only opens when the panic event ends, so maybe you have some setup/plugin that prevents the panic horde to finish (maybe my shot warns common plugin or another plugin, don't know for sure)
c10m3 is the only map that has this kind of trigger event (OnPanicEventFinished), even on l4d2

The best would be creating a timer after using the door and triggering the relay_enable_chuch_zombie_loop trigger.

I will share the stripper_dump for this map (l4d_smalltown03_ranchhouse.0000.cfg) in case you need to check more stuff.
Attached Files
File Type: zip l4d_smalltown03_ranchhouse.0000.zip (37.9 KB, 69 views)
__________________

Last edited by Marttt; 09-24-2021 at 20:33.
Marttt is offline
Beatles
Senior Member
Join Date: Feb 2014
Old 09-25-2021 , 05:15   Re: [L4D] ChurchGuy Bug
Reply With Quote #4

Quote:
Originally Posted by Marttt View Post
From my testing what blocks you to go inside is this entity:

Class: func_button Targetname: button_safedoor_PANIC HammerID: 2570933 Position: -2560.50 48.00 213.36 Angles: 0.00 0.00 0.00

You can unlock the door by typing
"ent_fire checkpoint_entrance unlock" then "ent_fire checkpoint_entrance open" in console.

Then you will notice that this button_safedoor_PANIC entity is on the way to enter.

If you type "ent_fire button_safedoor_PANIC kill" you will be able to go inside.


Checking the stripper dump
The door only opens when the panic event ends, so maybe you have some setup/plugin that prevents the panic horde to finish (maybe my shot warns common plugin or another plugin, don't know for sure)
c10m3 is the only map that has this kind of trigger event (OnPanicEventFinished), even on l4d2

The best would be creating a timer after using the door and triggering the relay_enable_chuch_zombie_loop trigger.

I will share the stripper_dump for this map (l4d_smalltown03_ranchhouse.0000.cfg) in case you need to check more stuff.
Thanks a lot bro, this is what I did and it works fine:
PHP Code:
public Action:ChurchSafeRoomFix(Handle:timer)
{
    new 
client GetRandomClient();
    
int ent = -1;
    
    while ((
ent FindEntityByClassname(ent"prop_door_rotating_checkpoint")) != INVALID_ENT_REFERENCE)
    {
        if (!
IsValidEntity(ent) || !IsValidEdict(ent))
        {
            continue;
        }
        
SetEntProp(entProp_Data"m_hasUnlockSequence"0);
        
AcceptEntityInput(ent"Unlock");
        
AcceptEntityInput(ent"Open");
    }
    new 
flags GetCommandFlags("ent_fire");
    
SetCommandFlags("ent_fire"flags & ~FCVAR_CHEAT);
    
FakeClientCommand(client"ent_fire button_safedoor_PANIC kill");            
    
SetCommandFlags("ent_fire"flags|FCVAR_CHEAT);
}

GetRandomClient()
{
    for (new 
1<= MaxClientsi++) 
    {
        if (
IsClientConnected(i) && IsClientInGame(i) && (!IsFakeClient(i))) 
        {
            return 
i;
        }
    }

Beatles is offline
Silvers
SourceMod Plugin Approver
Join Date: Aug 2010
Location: SpaceX
Old 09-25-2021 , 07:04   Re: [L4D] ChurchGuy Bug
Reply With Quote #5

PHP Code:
    new flags GetCommandFlags("ent_fire");
    
SetCommandFlags("ent_fire"flags & ~FCVAR_CHEAT);
    
FakeClientCommand(client"ent_fire button_safedoor_PANIC kill");            
    
SetCommandFlags("ent_fire"flags|FCVAR_CHEAT); 
Should be:

PHP Code:
    new flags GetCommandFlags("ent_fire");
    
SetCommandFlags("ent_fire"flags & ~FCVAR_CHEAT);
    
FakeClientCommand(client"ent_fire button_safedoor_PANIC kill");            
    
SetCommandFlags("ent_fire"flags); 
Set the flags back to what they were without adding FCVAR_CHEAT because some servers might completely remove that cheat flag and you just added it when it shouldn't be there. I've seen this being spread around too much, it's not the right way.
__________________
Silvers is offline
Beatles
Senior Member
Join Date: Feb 2014
Old 09-26-2021 , 00:49   Re: [L4D] ChurchGuy Bug
Reply With Quote #6

Quote:
Originally Posted by Silvers View Post
PHP Code:
    new flags GetCommandFlags("ent_fire");
    
SetCommandFlags("ent_fire"flags & ~FCVAR_CHEAT);
    
FakeClientCommand(client"ent_fire button_safedoor_PANIC kill");            
    
SetCommandFlags("ent_fire"flags|FCVAR_CHEAT); 
Should be:

PHP Code:
    new flags GetCommandFlags("ent_fire");
    
SetCommandFlags("ent_fire"flags & ~FCVAR_CHEAT);
    
FakeClientCommand(client"ent_fire button_safedoor_PANIC kill");            
    
SetCommandFlags("ent_fire"flags); 
Set the flags back to what they were without adding FCVAR_CHEAT because some servers might completely remove that cheat flag and you just added it when it shouldn't be there. I've seen this being spread around too much, it's not the right way.
Thank you very much Silver, I will make the change, I appreciate your help
Beatles is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:18.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode