Skip to content
  • 0 Unread 0
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. BO2 Modding Releases & Resources
  3. [Resource] [GSC] Working Tombstone Fix - Works on Tranzit and Town

[Resource] [GSC] Working Tombstone Fix - Works on Tranzit and Town

Scheduled Pinned Locked Moved BO2 Modding Releases & Resources
22 Posts 13 Posters 8.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 115Gameplays Offline
    115Gameplays Offline
    115Gameplays
    wrote on last edited by
    #12

    Just adding this code snippet in %localappdata%\Plutonium\storage\t6\scripts\zm\zm_transit should work fine. (Create all folders if not exist)

    main()
    {
    	replaceFunc( maps/mp/zm_transit_utility::solo_tombstone_removal, ::solo_tombstone_removal );
    }
    
    solo_tombstone_removal()
    {
    	return;
    }
    

    Don't forget to compile it properly before adding it into that folder.

    water-meh-lawn litbeep Altrucity 3 Replies Last reply
    1
    • 115Gameplays 115Gameplays

      Just adding this code snippet in %localappdata%\Plutonium\storage\t6\scripts\zm\zm_transit should work fine. (Create all folders if not exist)

      main()
      {
      	replaceFunc( maps/mp/zm_transit_utility::solo_tombstone_removal, ::solo_tombstone_removal );
      }
      
      solo_tombstone_removal()
      {
      	return;
      }
      

      Don't forget to compile it properly before adding it into that folder.

      water-meh-lawn Offline
      water-meh-lawn Offline
      water-meh-lawn
      wrote on last edited by
      #13

      115Gameplays Works, thank you!

      1 Reply Last reply
      0
      • 115Gameplays 115Gameplays

        Just adding this code snippet in %localappdata%\Plutonium\storage\t6\scripts\zm\zm_transit should work fine. (Create all folders if not exist)

        main()
        {
        	replaceFunc( maps/mp/zm_transit_utility::solo_tombstone_removal, ::solo_tombstone_removal );
        }
        
        solo_tombstone_removal()
        {
        	return;
        }
        

        Don't forget to compile it properly before adding it into that folder.

        litbeep Offline
        litbeep Offline
        litbeep
        wrote on last edited by
        #14

        115Gameplays did not work for me, I receive the error

        local variable 'maps' not found.
        when compiling

        1 Reply Last reply
        0
        • GabrielCrack Offline
          GabrielCrack Offline
          GabrielCrack
          wrote on last edited by
          #15

          can someon pass the copiled file?

          115Gameplays 1 Reply Last reply
          0
          • 115Gameplays 115Gameplays

            Just adding this code snippet in %localappdata%\Plutonium\storage\t6\scripts\zm\zm_transit should work fine. (Create all folders if not exist)

            main()
            {
            	replaceFunc( maps/mp/zm_transit_utility::solo_tombstone_removal, ::solo_tombstone_removal );
            }
            
            solo_tombstone_removal()
            {
            	return;
            }
            

            Don't forget to compile it properly before adding it into that folder.

            Altrucity Offline
            Altrucity Offline
            Altrucity
            wrote on last edited by
            #16

            115Gameplays It’s still not working for me. I very well may not be doing it correctly though. Any more help would be greatly appreciated!

            115Gameplays 1 Reply Last reply
            0
            • Ciross Offline
              Ciross Offline
              Ciross
              wrote on last edited by
              #17

              I got this error:

              ******* script compile error *******
              [ERROR]:compiler:scripts/zm/hello.gsc:30:2: syntax error, unexpected notify
              ************************************
              
              Ciross 1 Reply Last reply
              0
              • Ciross Ciross

                I got this error:

                ******* script compile error *******
                [ERROR]:compiler:scripts/zm/hello.gsc:30:2: syntax error, unexpected notify
                ************************************
                
                Ciross Offline
                Ciross Offline
                Ciross
                wrote on last edited by
                #18

                For those having this error, you can simply fix it by adding level behind the notify function.
                Since the event is listened to it.

                1 Reply Last reply
                0
                • badbug Offline
                  badbug Offline
                  badbug
                  wrote on last edited by
                  #19
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • JezuzLizard JezuzLizard

                    Simply include this code in your script:

                    solo_tombstone_removal()
                    {
                    	notify( "tombstone_on" );
                    }
                    
                    turn_tombstone_on()
                    {
                    	while ( 1 )
                    	{
                    		machine = getentarray( "vending_tombstone", "targetname" );
                    		machine_triggers = getentarray( "vending_tombstone", "target" );
                    		i = 0;
                    		while ( i < machine.size )
                    		{
                    			machine[ i ] setmodel( level.machine_assets[ "tombstone" ].off_model );
                    			i++;
                    		}
                    		level thread do_initial_power_off_callback( machine, "tombstone" );
                    		array_thread( machine_triggers, ::set_power_on, 0 );
                    		level waittill( "tombstone_on" );
                    		i = 0;
                    		while ( i < machine.size )
                    		{
                    			machine[ i ] setmodel( level.machine_assets[ "tombstone" ].on_model );
                    			machine[ i ] vibrate( vectorScale( ( 0, -1, 0 ), 100 ), 0,3, 0,4, 3 );
                    			machine[ i ] playsound( "zmb_perks_power_on" );
                    			machine[ i ] thread perk_fx( "tombstone_light" );
                    			machine[ i ] thread play_loop_on_machine();
                    			i++;
                    		}
                    		level notify( "specialty_scavenger_power_on" );
                    		array_thread( machine_triggers, ::set_power_on, 1 );
                    		if ( isDefined( level.machine_assets[ "tombstone" ].power_on_callback ) )
                    		{
                    			array_thread( machine, level.machine_assets[ "tombstone" ].power_on_callback );
                    		}
                    		level waittill( "tombstone_off" );
                    		if ( isDefined( level.machine_assets[ "tombstone" ].power_off_callback ) )
                    		{
                    			array_thread( machine, level.machine_assets[ "tombstone" ].power_off_callback );
                    		}
                    		array_thread( machine, ::turn_perk_off );
                    		players = get_players();
                    		_a1718 = players;
                    		_k1718 = getFirstArrayKey( _a1718 );
                    		while ( isDefined( _k1718 ) )
                    		{
                    			player = _a1718[ _k1718 ];
                    			player.hasperkspecialtytombstone = undefined;
                    			_k1718 = getNextArrayKey( _a1718, _k1718 );
                    		}
                    	}
                    }
                    
                    perk_machine_spawn_init()
                    {
                    	match_string = "";
                    	location = level.scr_zm_map_start_location;
                    	if ( location != "default" && location == "" && isDefined( level.default_start_location ) )
                    	{
                    		location = level.default_start_location;
                    	}
                    	match_string = ( level.scr_zm_ui_gametype + "_perks_" ) + location;
                    	pos = [];
                    	if ( isDefined( level.override_perk_targetname ) )
                    	{
                    		structs = getstructarray( level.override_perk_targetname, "targetname" );
                    	}
                    	else
                    	{
                    		structs = getstructarray( "zm_perk_machine", "targetname" );
                    	}
                    	_a3578 = structs;
                    	_k3578 = getFirstArrayKey( _a3578 );
                    	while ( isDefined( _k3578 ) )
                    	{
                    		struct = _a3578[ _k3578 ];
                    		if ( isDefined( struct.script_string ) )
                    		{
                    			tokens = strtok( struct.script_string, " " );
                    			_a3583 = tokens;
                    			_k3583 = getFirstArrayKey( _a3583 );
                    			while ( isDefined( _k3583 ) )
                    			{
                    				token = _a3583[ _k3583 ];
                    				if ( token == match_string )
                    				{
                    					pos[ pos.size ] = struct;
                    				}
                    				_k3583 = getNextArrayKey( _a3583, _k3583 );
                    			}
                    		}
                    		else pos[ pos.size ] = struct;
                    		_k3578 = getNextArrayKey( _a3578, _k3578 );
                    	}
                    	if ( !isDefined( pos ) || pos.size == 0 )
                    	{
                    		return;
                    	}
                    	precachemodel( "zm_collision_perks1" );
                    	i = 0;
                    	while ( i < pos.size )
                    	{
                    		perk = pos[ i ].script_noteworthy;
                    		if ( isDefined( perk ) && isDefined( pos[ i ].model ) )
                    		{
                    			use_trigger = spawn( "trigger_radius_use", pos[ i ].origin + vectorScale( ( 0, -1, 0 ), 30 ), 0, 40, 70 );
                    			use_trigger.targetname = "zombie_vending";
                    			use_trigger.script_noteworthy = perk;
                    			use_trigger triggerignoreteam();
                    			perk_machine = spawn( "script_model", pos[ i ].origin );
                    			perk_machine.angles = pos[ i ].angles;
                    			perk_machine setmodel( pos[ i ].model );
                    			if ( isDefined( level._no_vending_machine_bump_trigs ) && level._no_vending_machine_bump_trigs )
                    			{
                    				bump_trigger = undefined;
                    			}
                    			else
                    			{
                    				bump_trigger = spawn( "trigger_radius", pos[ i ].origin, 0, 35, 64 );
                    				bump_trigger.script_activated = 1;
                    				bump_trigger.script_sound = "zmb_perks_bump_bottle";
                    				bump_trigger.targetname = "audio_bump_trigger";
                    				if ( perk != "specialty_weapupgrade" )
                    				{
                    					bump_trigger thread thread_bump_trigger();
                    				}
                    			}
                    			collision = spawn( "script_model", pos[ i ].origin, 1 );
                    			collision.angles = pos[ i ].angles;
                    			collision setmodel( "zm_collision_perks1" );
                    			collision.script_noteworthy = "clip";
                    			collision disconnectpaths();
                    			use_trigger.clip = collision;
                    			use_trigger.machine = perk_machine;
                    			use_trigger.bump = bump_trigger;
                    			if ( isDefined( pos[ i ].blocker_model ) )
                    			{
                    				use_trigger.blocker_model = pos[ i ].blocker_model;
                    			}
                    			if ( isDefined( pos[ i ].script_int ) )
                    			{
                    				perk_machine.script_int = pos[ i ].script_int;
                    			}
                    			if ( isDefined( pos[ i ].turn_on_notify ) )
                    			{
                    				perk_machine.turn_on_notify = pos[ i ].turn_on_notify;
                    			}
                    			if ( perk == "specialty_scavenger" || perk == "specialty_scavenger_upgrade" )
                    			{
                    				use_trigger.script_sound = "mus_perks_tombstone_jingle";
                    				use_trigger.script_string = "tombstone_perk";
                    				use_trigger.script_label = "mus_perks_tombstone_sting";
                    				use_trigger.target = "vending_tombstone";
                    				perk_machine.script_string = "tombstone_perk";
                    				perk_machine.targetname = "vending_tombstone";
                    				if ( isDefined( bump_trigger ) )
                    				{
                    					bump_trigger.script_string = "tombstone_perk";
                    				}
                    			}
                    			if ( isDefined( level._custom_perks[ perk ] ) && isDefined( level._custom_perks[ perk ].perk_machine_set_kvps ) )
                    			{
                    				[[ level._custom_perks[ perk ].perk_machine_set_kvps ]]( use_trigger, perk_machine, bump_trigger, collision );
                    			}
                    		}
                    		i++;
                    	}
                    }
                    
                    isTown()
                    {
                    	if (isDefined(level.zombiemode_using_tombstone_perk) && level.zombiemode_using_tombstone_perk)
                    	{
                    		level thread perk_machine_spawn_init();
                    		thread solo_tombstone_removal();
                    		thread turn_tombstone_on();
                    	}
                    }
                    

                    and this code in your init():

                    isTown();
                    

                    and finally make sure to include:

                    #include maps\mp\zombies\_zm_perks;
                    

                    Basically the way it works is GSC only reads the first function with the same name. So if you have a function that you want to override simply call it first before the game calls the base function and it will be overridden.

                    edit: Updated to be map agnostic so it will only attempt to fix tombstone on Tranzit and Town.
                    edit2: Changed the condition to something more accurate - credit to Sparker for the recommendation.

                    badbug Offline
                    badbug Offline
                    badbug
                    wrote on last edited by
                    #20
                    This post is deleted!
                    1 Reply Last reply
                    0
                    • Altrucity Altrucity

                      115Gameplays It’s still not working for me. I very well may not be doing it correctly though. Any more help would be greatly appreciated!

                      115Gameplays Offline
                      115Gameplays Offline
                      115Gameplays
                      wrote on last edited by
                      #21

                      Altrucity hello it is possible that plutonium updated its way to interact with the game and the script no longer works

                      Still I have the scripts I made compiled in a GitHub repo where you can download here:
                      https://github.com/raulrm00/plutonium-t6-scripts/releases/download/v3.0.0/compiled_scripts.zip

                      1 Reply Last reply
                      0
                      • GabrielCrack GabrielCrack

                        can someon pass the copiled file?

                        115Gameplays Offline
                        115Gameplays Offline
                        115Gameplays
                        wrote on last edited by
                        #22

                        GabrielCrack I have the scripts I made compiled in a GitHub repo where you can download here:
                        https://github.com/raulrm00/plutonium-t6-scripts/releases/download/v3.0.0/compiled_scripts.zip

                        1 Reply Last reply
                        0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • 1
                        • 2
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Unread 0
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Donate