UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

Sliquifier

broken avatar :(
Created 5 years ago
by shippuden1592
0 Members and 1 Guest are viewing this topic.
2,954 views
broken avatar :(
×
broken avatar :(
Location: mxGuanajuato
Date Registered: 5 May 2013
Last active: 8 hours ago
Posts
230
Respect
Forum Rank
Mr. Elemental
Primary Group
Member
My Contact & Social Links
More
Personal Quote
If you do not take risks, you can not create a fut
×
shippuden1592's Groups
 
www.mediafire.com


Credits:deper

shippuden1592

How to install
In your _zombiemode.gsc below:
Code Snippet
Plaintext
maps\_zombiemode_weapon_box::init();
Add this:
Code Snippet
Plaintext
maps\_zombiemode_weap_sliquifier::init();
In your generic_human.atr search this:
Code Snippet
Plaintext
body
{
And below add this:
Code Snippet
Plaintext
    ai_zombie_crawl_slipslide_fast
    ai_zombie_crawl_slipslide_recover
    ai_zombie_crawl_slipslide_slow
    ai_zombie_run_slipslide
    ai_zombie_run_slipslide_a
    ai_zombie_slipslide_collapse
    ai_zombie_sprint_slipslide
    ai_zombie_sprint_slipslide_a
    ai_zombie_walk_slipslide
    ai_zombie_walk_slipslide_a
In your _zombiemode_perks search this:
Code Snippet
Plaintext
flag_set("pack_machine_in_use");
below add this:
Code Snippet
Plaintext
player.in_pap = true;
in the same file, find this:
Code Snippet
Plaintext
player notify( "pap_taken" );
below add this:
Code Snippet
Plaintext
player.in_pap = false;
Add this to your mod.csv
Code Snippet
Plaintext
xanim,ai_zombie_crawl_slipslide_fast
xanim,ai_zombie_crawl_slipslide_recover
xanim,ai_zombie_crawl_slipslide_slow
xanim,ai_zombie_run_slipslide
xanim,ai_zombie_run_slipslide_a
xanim,ai_zombie_slipslide_collapse
xanim,ai_zombie_sprint_slipslide
xanim,ai_zombie_sprint_slipslide_a
xanim,ai_zombie_walk_slipslide
xanim,ai_zombie_walk_slipslide_a
weapon,sp/slipgun_zm
weapon,sp/slipgun_upgraded_zm
fx,sliquifer\slipgun_doorwater
fx,sliquifer\slipgun_zombiesplash

:fireball:1
broken avatar :(
×
broken avatar :(
Location: ca
Date Registered: 2 February 2019
Last active: 4 years ago
Posts
2
Respect
Forum Rank
Fresh Corpse
Primary Group
Member
×
5and5's Groups
5and5's Contact & Social Links
Amazing! I've always wanted the sliquifier in bo1. I made a sliq-waffe a while back which is the closes I could do lol - video
broken avatar :(
×
broken avatar :(
Location: de
Date Registered: 1 August 2020
Last active: 11 days ago
Posts
6
Respect
Forum Rank
Legless Crawler
Primary Group
Member
×
C_Kyle's Groups
C_Kyle's Contact & Social Links
bro tried to implement buildables logic without loosing a word about it lol ... but great stuff
 
If people having the problem that the zombies arent slipping on the goo (accompanied with "cannot cast undefined to bool" error in _zombiemode_weap_sliquifier.gsc), do the following in the mentioned *.gsc file:
 
Instead of
 
Code Snippet
cpp
if(exp_zombie.in_wonder_weapon)
    {
        return;
    }

there should be
 
Code Snippet
cpp
if(IsDefined(exp_zombie.in_wonder_weapon) && exp_zombie.in_wonder_weapon)
    {
        return;
    }

And instead of
 
Code Snippet
cpp
if(zombies[j].in_wonder_weapon)
    {
        continue;
    }
there should be
 
Code Snippet
cpp
if(IsDefined(zombies[j].in_wonder_weapon) && zombies[j].in_wonder_weapon)
    {
        continue;
    }

Also find this:
 
Code Snippet
cpp
if( !zombies[j].zmb_slipslide && ( distance(zombies[j].origin, slipgun) < level.zombie_vars ) )
    {
        zombies[j].zmb_slipslide = true;
        zombies[j] thread sliquifier_slipslide( player );
    }

and replace it with:
 
Code Snippet
cpp
if( ( !IsDefined(zombies[j].zmb_slipslide) || !zombies[j].zmb_slipslide ) && ( distance(zombies[j].origin, slipgun) < level.zombie_vars ) )
    {
        zombies[j].zmb_slipslide = true;
        zombies[j] thread sliquifier_slipslide( player );
    }

Id suggest you to replace the original sliquifier_area_effect() function with this one to ensure player slipping being deactivated if there is no goo:
 
Code Snippet
cpp
sliquifier_area_effect( slipgun, player )
{
    if( level.zombie_vars < 0 )
        return;

    level.zombie_vars--;

    PlayFX( level._effect, slipgun + (0,0,5) );

    trap_time = 0;

    sliq = spawn("script_model", slipgun);
    sliq setmodel("tag_origin");
        while( trap_time <= level.zombie_vars )
    {
        if( trap_time == 0.2 || trap_time == 2.2 || trap_time == 4.2 || trap_time == 6.2 )
            sliq playsound("sliqgun_puddle");

        zombies = GetAIArray( "axis" );
       
        for(j = 0; j < zombies.size; j++)
        {   
            //Boss
            if( Is_Boss( zombies[j] ) )
            {
                players = get_players();
                zombies[j] DoDamage( level.zombie_vars * players.size, player.origin, player );
                continue;
            }

            if(IsDefined(zombies[j].in_wonder_weapon) && zombies[j].in_wonder_weapon)
            {
                continue;
            }

            if( ( !IsDefined(zombies[j].zmb_slipslide) || !zombies[j].zmb_slipslide ) && ( distance(zombies[j].origin, slipgun) < level.zombie_vars ) )
            {
                zombies[j].zmb_slipslide = true;
                zombies[j] thread sliquifier_slipslide( player );
            }
        }

        players = get_players();
        for(i = 0; i < players.size; i++)
        {
            if(
                distance(players[i].origin, slipgun) < level.zombie_vars["slipgun_radius"]
                && level.zombie_vars["slipgun_shots"] > 0
            )
            {
                if( !IsDefined(players[i].sliq_active) || !players[i].sliq_active )
                {
                    players[i] setClientDvar("friction", 0);
                    players[i] setMoveSpeedScale(1.8);
                    players[i].sliq_active = true;
                }
            }
            else
            {
                if( IsDefined(players[i].sliq_active) && players[i].sliq_active )
                {
                    players[i] setClientDvar("friction", 5.5);
                    players[i] setMoveSpeedScale(1);
                    players[i].sliq_active = false;
                }
            }
        }
        wait(0.1);
        trap_time = trap_time + 0.1;
    }
    level.zombie_vars++;
    players = get_players();
    for(i = 0; i < players.size; i++)
    {
        if( IsDefined(players[i].sliq_active) && players[i].sliq_active )
        {
            players[i] setClientDvar("friction", 5.5);
            players[i] setMoveSpeedScale(1);
            players[i].sliq_active = false;
        }
    }
    sliq delete();
}

To make it compatible with nova crawlers (preventing them from behaving like normal slipping zombies), find this one:
 
Code Snippet
cpp
if( self.has_legs )

and modify it accordingly:
 
Code Snippet
cpp
if( self.has_legs && ! ( self is_quad() ) )

 
Last Edit: February 13, 2026, 11:37:28 pm by Moderator (Approval)

 
Loading ...