Login x
User Name:
Password:
Social Links Facebook Twitter YouTube Steam RSS News Feeds
Watch MODSonair

Members Online

»
0 Active | 66 Guests
Online:

LATEST FORUM THREADS

»
New BF2 Mod
BF2 General

Tutorials

»
Satchel Charges in Zombiemode
Versions: You must be logged in to view history.
[HOG]Rampage teaches you how to add satchel charges as buyable weapons and add them to the random weapon box.

Information

This will show you how to add buyable satchel charges to your map and also fix the problem where they replace one of your weapons, and does not allow you to get another weapon in that slot. It will also show you how to add the them to the random weapon box.

Radiant
Put a trigger_use where you want the buy trigger for the satchel charges to be. Give it the following KVPs:

"targetname" "satchel_purchase"
"zombie_cost" "2000"

Save and close.

Zombie Mode Weapons GSC

Open _zombiemode_weapons.gsc (rawmaps) and go to line 939 or search for the function "treasure_chest_give_weapon( weapon_string )". Then, replace the function with this (NOTE: This includes the code for the mortar round as well):

treasure_chest_give_weapon( weapon_string )
{
    primaryWeapons = self GetWeaponsListPrimaries();
    current_weapon = undefined;

    // This should never be true for the first time.
    if( primaryWeapons.size >= 2 ) // he has two weapons
    {
        current_weapon = self getCurrentWeapon(); // get hiss current weapon

        if ( current_weapon == "mine_bouncing_betty" || current_weapon == "mortar_round" || current_weapon == "satchel_charge_new" )
        {
            current_weapon = undefined;
        }

        if( isdefined( current_weapon ) )
        {
            if( !( weapon_string == "fraggrenade" || weapon_string == "stielhandgranate" || weapon_string == "molotov" || weapon_string == "mortar_round" || weapon_string == "satchel_charge_new" ) )
            {
                self TakeWeapon( current_weapon );
            }
        
            if( weapon_string == "mortar_round" )
            {
                self GiveWeapon( "mortar_round");
                self SetActionSlot( 1,"weapon","mortar_round" );
                self SwitchToOffHand( "mortar_round" );
            }

            if( weapon_string == "satchel_charge_new" )
            {
                self GiveWeapon( "satchel_charge_new");
                self setactionslot(1,"weapon","satchel_charge_new");
                self SwitchToOffHand( "satchel_charge_new" );
            }
        }
    }

    if( IsDefined( primaryWeapons ) && !isDefined( current_weapon ) )
    {
        for( i = 0; i < primaryWeapons.size; i++ )
        {
            if( primaryWeapons[i] == "zombie_colt" )
            {
                continue;
            }

            if( weapon_string != "fraggrenade" && weapon_string != "stielhandgranate" && weapon_string != "molotov" && weapon_string != "mortar_round" && weapon_string != "satchel_charge_new" )
            {
                self TakeWeapon( primaryWeapons[i] );
            }
            
            if( weapon_string == "mortar_round" )
            {
                self GiveWeapon( "mortar_round");
                self SetActionSlot( 1,"weapon","mortar_round" );
                self SwitchToOffHand( "mortar_round" );
            }

            if( weapon_string == "satchel_charge_new" )
            {
                self GiveWeapon( "satchel_charge_new");
                self setactionslot(1,"weapon","satchel_charge_new");
                self SwitchToOffHand( "satchel_charge_new" );
            }
        }
    }

    self play_sound_on_ent( "purchase" );

    self GiveWeapon( weapon_string, 0 );
    self GiveMaxAmmo( weapon_string );
    self SwitchToWeapon( weapon_string );

    play_weapon_vo(weapon_string);

    // self playsound (level.zombie_weapons[weapon_string].sound);
}


Save and close.

Map GSC

Open nazi_zombie_yourmap.gsc (rawmaps). First, add this line in main():

maps_zombiemode_weapons::add_zombie_weapon( "satchel_charge_new",&"ZOMBIE_SATCHEL_PURCHASE", 2000 );

Second, put this in the include_weapons() function:

include_weapon("satchel_charge_new");

Next, put this in init_nazi_zombie_ver_ex():

satchel_trigs = getentarray("satchel_purchase","targetname");
array_thread(satchel_trigs,::buy_satchel);


Then, create a new function:

buy_satchel()
{
    while(1)
    {
        has_satchel = 0;
        who = undefined;

        self SetCursorHint( "HINT_ACTIVATE" );
        self UseTriggerRequireLookAt();
        self sethintstring( &"ZOMBIE_SATCHEL_PURCHASE" );
        self waittill("trigger", who);

        if( who in_revive_trigger() )
        {
            continue;
        }
                        
        if( is_player_valid( who ) )
        {
            
            if( who.score >= self.zombie_cost )
            {                
                who playsound( "cha_ching" );

                who maps_zombiemode_score::minus_to_player_score( self.zombie_cost );
                who giveweapon("satchel_charge_new");
                who setactionslot(1,"weapon","satchel_charge_new");
                has_satchel = 1;
            }
            else
            {
                who playsound( "no_cha_ching" );
            }
        }

        level waittill( "between_round_over" );
        {
            if( has_satchel > 0 )
            {
                who givestartammo("satchel_charge_new");
            }
        }
    }
}


Save and close.

Zone Source

Open nazi_zombie_yourmap.csv (zone_source) and add the following to it:

weapon,sp/satchel_charge_new
fx,weapon/satchel/fx_explosion_satchel_generic


Save and close.

STR File

Open zombie.str (rawenglishlocalizedstrings) and add the following to it:

REFERENCE           SATCHEL_PURCHASE
LANG_ENGLISH        "Press & hold &&1 to buy Satchel Charges [Cost: 2000]"


Save and close.

Conclusion

This fix will:

- Allow players to buy satchel charges without having a primary weapon replaced
- Allow players to get satchel charges from the random weapon box, without having a primary weapon replaced
- Limit the amount of satchels the player can use per round to 3 (i.e. Buy from wall; get one from random crate, get one from wall; etc.)
- Give a player that already had or bought a satchels 3 satchel charges each round (note that this may count towards the limit of 3 per round)
- Allow players to have bouncing betties and satchel charges (satchels have their own slot)

NOTE: As of right now, buying or taking satchel charges will replace mortar rounds.

Credits

[HOG]Rampage aka Sgt.Rampage
modsonline.com
customcod.com
codmapper

Latest Syndicated News

»
Codutility.com up and runn...
Nice, and there still using the logo and template for the screenshots, which...
Codutility.com up and runn...
dundy writes...Quote:Call of Duty modding and mapping is barly alive only a ...
Codutility.com up and runn...
Mystic writes...Quote:It seems to me the like the site is completely dead? ...
Codutility.com up and runn...
It seems to me the like the site is completely dead?

Partners & Friends

»