Raised This Month: $ Target: $400
 0% 

[L4D2] Incapped Crawling with Animation (2.9) [11-Dec-2022]


Post New Thread Reply   
 
Thread Tools Display Modes
Author
DeathChaos25
Senior Member
Join Date: Jan 2014
Location: Puerto Rico
Plugin ID:
1934
Plugin Version:
2.9
Plugin Category:
Gameplay
Plugin Game:
Left 4 Dead
Plugin Dependencies:
    Servers with this Plugin:
    362 
    Plugin Description:
    Allows incapped survivors to crawl and plays crawling animation.
    Old 09-03-2015 , 19:58   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #1

    So, I've been messing around with quite a few functions and stuff, and I've managed to actually force the animation to play on the actual survivor itself.

    https://youtu.be/fvLJ8ZHyqJU
    __________________

    Last edited by DeathChaos25; 09-03-2015 at 23:34.
    DeathChaos25 is offline
    anakmonyet
    New Member
    Join Date: Apr 2017
    Old 04-25-2017 , 21:42   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #2

    @Silvers is it possible to add backward on Incapped?

    One more thing:
    Do you continued work on Dragging animation?
    If I am not mistaken, there are 5 unused dragging animation.
    This is the image : https://tcrf.net/Left_4_Dead#Dragging

    Btw, i love your mod.

    Last edited by anakmonyet; 04-25-2017 at 22:07.
    anakmonyet is offline
    bazrael
    Senior Member
    Join Date: Jan 2010
    Location: Where Lucy became superw
    Old 01-29-2017 , 10:10   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #3

    I found plugin might have been broken by Valve update last year. L4D1 survivor's crawling animation was broken. This video was captured in last March. I just forget to tell you...
    --EDIT--
    I tested all L4D1 survivors again yesterday and found that if using default models, only Zoey had the same problem but other 3 male survivors were normal. However, after turned on my survivor's skins VPK, Bill is the only one running correct animation. Would plugin be affected by community-made skins?

    --Response 02.04--
    Now I've used different Zoey skin model from the one in video, she still has wrong animation but crawls in different way...

    Last edited by bazrael; 02-04-2017 at 08:00. Reason: Response
    bazrael is offline
    cravenge
    Veteran Member
    Join Date: Nov 2015
    Location: Chocolate Factory
    Old 01-30-2017 , 08:24   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #4

    Quote:
    Originally Posted by bazrael View Post
    [...]
    Let me go ahead and tell that it's a no. The problem may lie with the vpk as it probably uses old model sequences. Earlier, I checked the model viewer and found nothing altered, modified, nor changed after the update.
    cravenge is offline
    cravenge
    Veteran Member
    Join Date: Nov 2015
    Location: Chocolate Factory
    Old 03-15-2017 , 00:09   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #5

    On a bright side, this plugin actually supports L4D. It's just that the animations being used when crawling are incorrect. Glad to share this for those who still play L4D including myself, XD.
    Attached Files
    File Type: sp Get Plugin or Get Source (incapped_crawling_with_animations-l4d.sp - 392 views - 18.0 KB)
    File Type: txt iwca.phrases.txt (88 Bytes, 195 views)
    cravenge is offline
    Silvers
    SourceMod Plugin Approver
    Join Date: Aug 2010
    Location: SpaceX
    Old 01-29-2017 , 13:59   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #6

    lol.

    Edit: Yeah community skins probably changed some of the offsets or something. I wonder is it possible to detect which addons clients have enabled? Is Zoey messed up with the stock models?
    __________________

    Last edited by Silvers; 01-30-2017 at 15:54.
    Silvers is offline
    Silvers
    SourceMod Plugin Approver
    Join Date: Aug 2010
    Location: SpaceX
    Old 04-28-2017 , 10:02   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #7

    @anakmonyet: Backwards no, unless you kept the same animation and forced them to move back, not something I can be bothered to do because it just won't look good.

    Incapped Drag plugin is something I tried to work on years ago around the same time I released this, but it never worked properly / the animations didn't sync up with the player dragging and the one on the ground. Because of that I didn't bother to finish but I'm sure somebody can do it.


    @cravenge: Thanks for the L4D1 support, it's working 100%? Then I'll add to the first post if that's fine with you.
    __________________
    Silvers is offline
    LeandroJ
    New Member
    Join Date: Apr 2017
    Old 04-28-2017 , 11:11   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #8

    Sorry for this question but I would like to know how to translate this mod to Portuguese since it has a translation into that language.
    LeandroJ is offline
    Silvers
    SourceMod Plugin Approver
    Join Date: Aug 2010
    Location: SpaceX
    Old 04-28-2017 , 11:51   Re: [L4D2] Incapped Crawling with Animation (1.32) [10-May-2012]
    Reply With Quote #9

    Quote:
    Originally Posted by LeandroJ View Post
    Sorry for this question but I would like to know how to translate this mod to Portuguese since it has a translation into that language.
    Are you saying the translation is wrong, or you don't see it in-game? It has a Portuguese translation so one shouldn't be required.

    Extract the 'Translations' folder from the zip archive to your servers SourceMod folder, and if your games is in Portuguese then you should see the public text of the plugin in Portuguese.

    Any text provided by admin commands etc (I don't think this plugin has any other text) are in English and will remain that way, unless you want to recompile the plugin for personal use in another language.
    __________________
    Silvers is offline
    Lux
    Veteran Member
    Join Date: Jan 2015
    Location: Cat
    Old 08-16-2017 , 18:12   Re: [L4D2] Incapped Crawling with Animation (1.33) [25-Jun-2017]
    Reply With Quote #10

    Hi i been searching for a way to add the crawling anim directly, this is how far i came,
    however the client crawling can see the crawl anim but the other clients can just see sliding not sure how to go from here.

    Maybe someone else has a better way to work on it.


    PHP Code:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>
    #include <sdkhooks>

    public OnPluginStart()
    {
        for(new 
    1<= MaxClientsi++)
        {
            if(!
    IsClientInGame(i) || IsFakeClient(i))
                continue;
            
            
    SDKHook(iSDKHook_PostThinkPostHook_OnPostThinkPost);
        }
    }

    public 
    OnPluginEnd()
    {
        for(new 
    1<= MaxClientsi++)
        {
            if(!
    IsClientInGame(i) || IsFakeClient(i))
                continue;
            
            
    SDKUnhook(iSDKHook_PostThinkPostHook_OnPostThinkPost);
        }
    }

    public 
    OnClientPutInServer(iClient)
    {
        if(
    IsFakeClient(iClient))
            return;
        
        
    SDKHook(iClientSDKHook_PostThinkPostHook_OnPostThinkPost);
    }
    public 
    OnClientDisconnect(iClient)
    {
        if(
    IsFakeClient(iClient))
            return;
        
        
    SDKUnhook(iClientSDKHook_PostThinkPostHook_OnPostThinkPost);
    }


    public 
    Hook_OnPostThinkPost(iClient)
    {
        if(
    GetClientTeam(iClient) != || !IsPlayerAlive(iClient))
            return;
        
        if(!
    GetEntProp(iClientProp_Send"m_isIncapacitated"1))
        {
            
    SetEntProp(iClientProp_Send"m_bClientSideAnimation"11);
            return;
        }
        
        
        if(!(
    GetClientButtons(iClient) & IN_FORWARD))
            return;
        
        if(
    IsSurvivorBusy(iClient))
            return;
        
        static 
    String:sModel[31];
        
    GetEntPropString(iClientProp_Data"m_ModelName"sModelsizeof(sModel));
        
        switch(
    sModel[29])
        {
            case 
    'b'://nick
            
    {
                
    SetEntProp(iClientProp_Send"m_nSequence"6312);
            }
            case 
    'd'://rochelle
            
    {
                
    SetEntProp(iClientProp_Send"m_nSequence"6362);
            }
            case 
    'c'://coach
            
    {
                return;
            }
            case 
    'h'://ellis
            
    {
                
    SetEntProp(iClientProp_Send"m_nSequence"6392);
            }
            case 
    'v'://bill
            
    {            
                
    SetEntProp(iClientProp_Send"m_nSequence"5392);
            }
            case 
    'n'://zoey
            
    {
                
    SetEntProp(iClientProp_Send"m_nSequence"5292);
            }
            case 
    'e'://francis
            
    {
                
    SetEntProp(iClientProp_Send"m_nSequence"5422);
            }
            case 
    'a'://louis
            
    {    
                
    SetEntProp(iClientProp_Send"m_nSequence"5392);
            }
            case 
    'w'://adawong
            
    {    
                
    SetEntProp(iClientProp_Send"m_nSequence"6362);
            }
        }
        
        
    //static Float:fTime[MAXPLAYERS+1];
        //if(fTime[iClient] < GetEngineTime())
        //{
        //    SetEntPropFloat(iClient, Prop_Send, "m_fServerAnimStartTime", GetGameTime());
        //    fTime[iClient] = GetEngineTime() + 1;
        //}
        
    SetEntPropFloat(iClientProp_Send"m_flPlaybackRate"1.0);    
        
    SetEntPropFloat(iClientProp_Send"m_flCycle"FloatFraction(GetGameTime()));
        
        
    SetEntProp(iClientProp_Send"m_bClientSideAnimation"01);
        
    //SetEntProp(iClient, Prop_Send, "m_bClientSideFrameReset", 1, 1);
        
        
        //new Float:iEntProp = GetEntPropFloat(iClient, Prop_Send, "m_flCycle");
        //PrintToChat(iClient, "m_flCycle = %f", iEntProp);
    }

    static 
    bool:IsSurvivorBusy(iClient)
    {
        if(
    GetEntPropEnt(iClientProp_Send"m_pummelAttacker") > 0)
            return 
    true;
        if(
    GetEntPropEnt(iClientProp_Send"m_carryAttacker") > 0)
            return 
    true;
        if(
    GetEntPropEnt(iClientProp_Send"m_pounceAttacker") > 0)
            return 
    true;
        if(
    GetEntPropEnt(iClientProp_Send"m_jockeyAttacker") > 0)
            return 
    true;
        if(
    GetEntProp(iClientProp_Send"m_isHangingFromLedge") > 0)
            return 
    true;
        if(
    GetEntPropEnt(iClientProp_Send"m_reviveOwner") > 0)
            return 
    true;
        if(
    GetEntPropFloat(iClientProp_Send"m_staggerTimer"1) > -1.0)
            return 
    true;
        switch(
    GetEntProp(iClientProp_Send"m_iCurrentUseAction"))
        {
            case 
    1:
            {
                static 
    iTarget;
                
    iTarget GetEntPropEnt(iClientProp_Send"m_useActionTarget");
                
                if(
    iTarget == GetEntPropEnt(iClientProp_Send"m_useActionOwner"))
                    return 
    true;
                else if(
    iTarget != iClient)
                    return 
    true;
            }
            case 
    4678910:
            return 
    true;
        }
        
        static 
    String:sModel[31];
        
    GetEntPropString(iClientProp_Data"m_ModelName"sModelsizeof(sModel));
        
        switch(
    sModel[29])
        {
            case 
    'b'://nick
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    626625624623622621661662664665666667668670671672673674620680616:
                    return 
    true;
                }
            }
            case 
    'd'://rochelle
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    674678679630631632633634668677681680676675673672671670687629625616:
                    return 
    true;
                }
            }
            case 
    'c'://coach
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    656622623624625626663662661660659658657654653652651621620669615:
                    return 
    true;
                }
            }
            case 
    'h'://ellis
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    625675626627628629630631678677676575674673672671670669668667666665684621:
                    return 
    true;
                }
            }
            case 
    'v'://bill
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    528759763764529530531532533534753676675761758757756755754527772762522:
                    return 
    true;
                }
            }
            case 
    'n'://zoey
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    537819823824538539540541542543813828825822821820818817816815814536809572:
                    return 
    true;
                }
            }
            case 
    'e'://francis
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    532533534535536537769768767766765764763762761760759758757756531530775525:
                    return 
    true;
                }
            }
            case 
    'a'://louis
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    529530531532533534766765764763762761760759758757756755754753527772528522:
                    return 
    true;
                }
            }
            case 
    'w'://adawong
            
    {
                switch(
    GetEntProp(iClientProp_Send"m_nSequence"))
                {
                    case 
    674678679630631632633634668677681680676675673672671670687629625616:
                    return 
    true;
                }
            }
        }
        
        return 
    false;

    __________________
    Connect
    My Plugins: KlickME
    [My GitHub]

    Commission me for L4D
    Lux 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 12:26.


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