Raised This Month: $32 Target: $400
 8% 

[L4D2] FakeZoey (Updated 04-13-2015)


Post New Thread Reply   
 
Thread Tools Display Modes
Sev
Veteran Member
Join Date: May 2010
Old 02-26-2015 , 13:07   Re: [L4D2] FakeZoey
Reply With Quote #11

NP, happy to help.
Sev is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 02-26-2015 , 14:25   Re: [L4D2] FakeZoey
Reply With Quote #12

Yes, I always compile plugins for the newest/most recent stable version of sourcemod.

But yes, the old survivor chat select wouldn't have helped, as the new one was compiled specifically for fake zoey
__________________
DeathChaos25 is offline
HilbertPL
Junior Member
Join Date: Mar 2014
Old 02-27-2015 , 10:10   Re: [L4D2] FakeZoey
Reply With Quote #13

Found one bug :

-When Zoey will die, she speaking with Nick's voice in saferoom
: I trapped in here, let me out, etc
HilbertPL is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 02-27-2015 , 11:58   Re: [L4D2] FakeZoey
Reply With Quote #14

Quote:
Originally Posted by HilbertPL View Post
Found one bug :

-When Zoey will die, she speaking with Nick's voice in saferoom
: I trapped in here, let me out, etc
I forgot to mention that in the original post, I'll update it to include this bit of info, as this is not a bug, but rather, the fault of the game's behavior.

Zoey will speak in Nick's voice when in a rescue closet because it is not the actual character speaking, and as such, it is impossible to replace those lines with Zoey's lines.
__________________
DeathChaos25 is offline
Pikarikku
Junior Member
Join Date: Nov 2010
Old 03-06-2015 , 06:19   Re: [L4D2] FakeZoey
Reply With Quote #15

Hello, my apologies. I've read and reread the problems and solutions on this thread as well as csm but I still can't figure out what's wrong. So I downloaded the new version of sourcemod, Sceneprocessor as well as SendProxy, which was included on the scs zip file, as well as fake zoey, but she still talks with nick's voice. I'm stumped on this, any ideas?
Pikarikku is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 03-06-2015 , 13:23   Re: [L4D2] FakeZoey
Reply With Quote #16

Quote:
Originally Posted by Pikarikku View Post
Hello, my apologies. I've read and reread the problems and solutions on this thread as well as csm but I still can't figure out what's wrong. So I downloaded the new version of sourcemod, Sceneprocessor as well as SendProxy, which was included on the scs zip file, as well as fake zoey, but she still talks with nick's voice. I'm stumped on this, any ideas?
Are you running a Dedicated Servers?

Scene Processor does not work in non dedicated servers, and without Scene Processor FakeZoey will not work.

Have you listed your plugins to see if both FakeZoey and Scene Processor have loaded correctly?

I use all of my own developed plugins myself so I can guarantee that they work 100%, list your plugins here, maybe another one is conflicting, and maybe we can help.
__________________
DeathChaos25 is offline
Mr. Zero
Veteran Member
Join Date: Jun 2009
Location: Denmark
Old 03-07-2015 , 01:21   Re: [L4D2] FakeZoey
Reply With Quote #17

So talking with Sev the other day, he mentions this plugin to me and the issue of the incorrect Survivor voice when calling out for rescue. Sev then recalls that I had an early work of mine where I did the same trick with Bill and Nick (before Valve fixed it for Windows) and I too ran into this issue.

The code may be a bit old and require a touch up. The looping is rather sloppy as it should really only be done once, OnConfigsExecuted, pushed to a array and then a random scene from array should be chosen instead. However considering that a Survivor only calls out every 5 - 7 seconds it should not be a showstopper of any kind. Feel free to improve. Anyway, thanks Sev for reminding me.
PHP Code:
static          bool:   g_bIsRescuePoint[MAX_ENTITIES 1];

public 
OnPluginStart()
{
    
AddNormalSoundHook(RescueCallOut_SoundHook);
}

public 
OnEntityCreated(entity, const String:classname[])
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return;
    }

    if (
StrEqual(classname"info_survivor_rescue"))
    {
        
g_bIsRescuePoint[entity] = true;
    }
}

public 
OnEntityDestroyed(entity)
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return;
    }

    
g_bIsRescuePoint[entity] = false;
}

public 
Action:RescueCallOut_SoundHook(clients[64], &numClientsString:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return 
Plugin_Continue;
    }

    if (
g_bIsRescuePoint[entity] && StrContains(sample"gambler\\CallForRescue"false) != -1)
    {
        new 
owner GetEntPropEnt(entityProp_Send"m_survivor");
        if (
owner && owner <= MaxClients && g_bIsBick[owner])
        {
            
decl String:newSample[PLATFORM_MAX_PATH];
            
decl String:fileSample[PLATFORM_MAX_PATH];
            
decl sceneNumber;
            for (new 
050i++)
            {
                
sceneNumber GetRandomInt(115);
                
Format(newSamplePLATFORM_MAX_PATH"player\\survivor\\voice\\namvet\\callforrescue%s%d.wav", (sceneNumber 10 "0" ""), sceneNumber);
                
Format(fileSamplePLATFORM_MAX_PATH"sound\\%s"newSample);

                if (!
FileExists(fileSampletrue))
                {
                    continue;
                }

                new 
Handle:pack CreateDataPack();
                
WritePackCell(packentity);
                
WritePackCell(packlevel);
                
WritePackCell(packchannel);
                
WritePackCell(packflags);
                
WritePackCell(packpitch);
                
WritePackFloat(packvolume);
                
WritePackString(packnewSample);
                
CreateTimer(0.0OnRescueCallOut_TimerpackTIMER_FLAG_NO_MAPCHANGE TIMER_DATA_HNDL_CLOSE);
                break;
            }

            
volume 0.0;
            return 
Plugin_Changed;
        }
    }

    return 
Plugin_Continue;
}

public 
Action:OnRescueCallOut_Timer(Handle:timerHandle:pack)
{
    
ResetPack(pack);
    new 
entity ReadPackCell(pack);
    new 
level ReadPackCell(pack);
    new 
channel ReadPackCell(pack);
    new 
flags ReadPackCell(pack);
    new 
pitch ReadPackCell(pack);
    new 
Float:volume ReadPackFloat(pack);
    
decl String:sample[PLATFORM_MAX_PATH];
    
ReadPackString(packsamplePLATFORM_MAX_PATH);

    if (!
IsSoundPrecached(sample))
    {
        
PrecacheSound(sampletrue);
    }

    
EmitSoundToAll(sampleentitychannellevelflagsvolumepitch);
    return 
Plugin_Stop;

Mr. Zero is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 03-08-2015 , 11:11   Re: [L4D2] FakeZoey
Reply With Quote #18

Quote:
Originally Posted by Mr. Zero View Post
So talking with Sev the other day, he mentions this plugin to me and the issue of the incorrect Survivor voice when calling out for rescue. Sev then recalls that I had an early work of mine where I did the same trick with Bill and Nick (before Valve fixed it for Windows) and I too ran into this issue.

The code may be a bit old and require a touch up. The looping is rather sloppy as it should really only be done once, OnConfigsExecuted, pushed to a array and then a random scene from array should be chosen instead. However considering that a Survivor only calls out every 5 - 7 seconds it should not be a showstopper of any kind. Feel free to improve. Anyway, thanks Sev for reminding me.
PHP Code:
static          bool:   g_bIsRescuePoint[MAX_ENTITIES 1];

public 
OnPluginStart()
{
    
AddNormalSoundHook(RescueCallOut_SoundHook);
}

public 
OnEntityCreated(entity, const String:classname[])
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return;
    }

    if (
StrEqual(classname"info_survivor_rescue"))
    {
        
g_bIsRescuePoint[entity] = true;
    }
}

public 
OnEntityDestroyed(entity)
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return;
    }

    
g_bIsRescuePoint[entity] = false;
}

public 
Action:RescueCallOut_SoundHook(clients[64], &numClientsString:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
{
    if (
entity <= || entity MAX_ENTITIES)
    {
        return 
Plugin_Continue;
    }

    if (
g_bIsRescuePoint[entity] && StrContains(sample"gambler\\CallForRescue"false) != -1)
    {
        new 
owner GetEntPropEnt(entityProp_Send"m_survivor");
        if (
owner && owner <= MaxClients && g_bIsBick[owner])
        {
            
decl String:newSample[PLATFORM_MAX_PATH];
            
decl String:fileSample[PLATFORM_MAX_PATH];
            
decl sceneNumber;
            for (new 
050i++)
            {
                
sceneNumber GetRandomInt(115);
                
Format(newSamplePLATFORM_MAX_PATH"player\\survivor\\voice\\namvet\\callforrescue%s%d.wav", (sceneNumber 10 "0" ""), sceneNumber);
                
Format(fileSamplePLATFORM_MAX_PATH"sound\\%s"newSample);

                if (!
FileExists(fileSampletrue))
                {
                    continue;
                }

                new 
Handle:pack CreateDataPack();
                
WritePackCell(packentity);
                
WritePackCell(packlevel);
                
WritePackCell(packchannel);
                
WritePackCell(packflags);
                
WritePackCell(packpitch);
                
WritePackFloat(packvolume);
                
WritePackString(packnewSample);
                
CreateTimer(0.0OnRescueCallOut_TimerpackTIMER_FLAG_NO_MAPCHANGE TIMER_DATA_HNDL_CLOSE);
                break;
            }

            
volume 0.0;
            return 
Plugin_Changed;
        }
    }

    return 
Plugin_Continue;
}

public 
Action:OnRescueCallOut_Timer(Handle:timerHandle:pack)
{
    
ResetPack(pack);
    new 
entity ReadPackCell(pack);
    new 
level ReadPackCell(pack);
    new 
channel ReadPackCell(pack);
    new 
flags ReadPackCell(pack);
    new 
pitch ReadPackCell(pack);
    new 
Float:volume ReadPackFloat(pack);
    
decl String:sample[PLATFORM_MAX_PATH];
    
ReadPackString(packsamplePLATFORM_MAX_PATH);

    if (!
IsSoundPrecached(sample))
    {
        
PrecacheSound(sampletrue);
    }

    
EmitSoundToAll(sampleentitychannellevelflagsvolumepitch);
    return 
Plugin_Stop;

Ah yes, thank you, I'll have a look at it.
__________________
DeathChaos25 is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 03-24-2015 , 21:27   Re: [L4D2] FakeZoey (Updated 03-24-2015)
Reply With Quote #19

Updated this plugin today!

Code:
Version 1.1    03-24-2015
 - Some small code cleanup (Removed Mourn Fix as it was made into its own plugin)
 - FakeZoey now screams the names of L4D1 survivors when they die and they do the same for her
 - CallForRescue now implemented for FakeZoey (this still has issues, While she'll have Zoey voice, Nick text will still show up in closed captions) 
- Added updated Survivor Chat Select plugin
Edit : FOR EVERYONE WHO IS ASKING ABOUT THE DEDICATED SERVER ISSUE WITH SCENE PROCESSOR

I will attach a zip file of my own sourcemod directory containing a few modified plugins by myself for use in Single Player (scene processor is included)

THESE PLUGINS ARE IN NO WAY, SHAPE, OR FORM SUPPORTED BY THEIR ORIGINAL AUTHORS, HOWEVER, I CAN GUARANTEE THEY WORK

Edit #2 : I HAVE ADDED AN OFFLINE FRIENDLY VERSION OF SENDPROXY PLUGIN TO ACHIEVE ZOEY ARMS/ICONS, TO MAKE IT WORK, YOU MUST USE ZOEY VIA THE !z OR THE !zoey CHAT COMMANDS!
Attached Files
File Type: zip sourcemod.zip (1.14 MB, 1345 views)
File Type: smx l4d2_sendproxytest.smx (4.6 KB, 1070 views)
File Type: sp Get Plugin or Get Source (l4d2_sendproxytest.sp - 651 views - 1.2 KB)
__________________

Last edited by DeathChaos25; 04-13-2015 at 07:15.
DeathChaos25 is offline
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Old 04-04-2015 , 13:25   Re: [L4D2] FakeZoey (Updated 03-24-2015)
Reply With Quote #20

I would like to apologize as I noticed that the sendproxy compliment plugin wasn't actually giving clients Zoey arms/icons, I have corrected this issue and re-uploaded the plugin so please download again!
__________________
DeathChaos25 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 00:45.


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