Modme Forums

help with creating a buildable like the shield

Game Modding | Call of Duty: Black Ops 3 | General Discussion


ModmeBot:

Thread By: Noah Gamerscore
So I'm trying to make a little easter egg for my map, to where you have to build the Staffs by finding the 3 parts around the map. btw I'm using HarryBo21 Weapon Pack V1.3
I'm trying to mess around with the prefabs this video gave me for the shield and change it to build the Staffs

Can anyone help me, I would greatly appreciate it.


ModmeBot:

Reply By: ii R3cKYOuRSOul x
Hi Noah Gamerscore, I created a buildable fire staff. You can use this in your map as well!

ROOT FOLDER = C:\Program Files (x86)\Steam\steamapps\common\Call of Duty Black Ops III

1) Download the prefabs here :

Download
2) Drag the "map_source" folder to your root folder.

3) Open your "MAPNAME.gsc" file.

This is the scripting part

3a) Paste this


#define PAP_WEAPON_KNUCKLE_CRACK "zombie_knuckle_crack"



UNDER this


//#using scripts\zm\_zm_powerup_weapon_minigun;



3b) Paste this


thread build_staff_fire();
	thread build();



UNDER this


level.pathdist_type = PATHDIST_ORIGINAL;



3c) Paste this to the bottom of the file


function build_staff_fire()
{
	staff_model = GetEnt("c_stafffire", "targetname");
	staff_model hide();

	buildTable = getEnt("c_table", "targetname");
	buildTable SetHintString("Additional Parts Required");
	buildTable SetCursorHint("HINT_NOICON");

	level.allParts = 0;
	level.finishedCraft = 3;

	level thread pick1();
	level thread pick2();
	level thread pick3();
 
	//level thread build();
}

function pick1()
{
	pick_trig1 = getent("c_pick1", "targetname");
	pick_trig1 SetHintString("Press and hold &&1 to pickup part");
	pick_trig1 SetCursorHint("HINT_NOICON");
	pick_model1 = getent("c_pickmodel1", "targetname");

	while(1)
	{
		pick_trig1 waittill("trigger", player);

		playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick1","targetname").origin);

		level.allParts++;

		//IPrintLnBold(level.allParts);

		thread build();
		
		break;
	}

	pick_trig1 delete();
	pick_model1 delete();
}

function pick2()
{
	pick_trig2 = getent("c_pick2", "targetname");
	pick_trig2 SetHintString("Press and hold &&1 to pickup part");
	pick_trig2 SetCursorHint("HINT_NOICON");
	pick_model2 = getent("c_pickmodel2", "targetname");

	while(1)
	{
		pick_trig2 waittill("trigger", player);
		
		playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick2","targetname").origin);

		level.allParts++;

		//IPrintLnBold(level.allParts);

		thread build();

		break;
	}

	pick_trig2 delete();
	pick_model2 delete();
}


function pick3()
{
	pick_trig3 = getent("c_pick3", "targetname");
	pick_trig3 SetHintString("Press and hold &&1 to pickup part");
	pick_trig3 SetCursorHint("HINT_NOICON");
	pick_model3 = getent("c_pickmodel3", "targetname");

	while(1)
	{
		pick_trig3 waittill("trigger", player);
		
		playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick3","targetname").origin);

		level.allParts++;

		//IPrintLnBold(level.allParts);

		thread build();

		break;
	}

	pick_trig3 delete();
	pick_model3 delete();
}


function build()
{

	while(1)
	{
		self waittill( level.allParts >= level.finishedCraft );
		
		if ( level.allParts >= level.finishedCraft )
		{
			buildTable = GetEnt("c_table", "targetname");
			buildTable SetHintString("Press and hold &&1 to craft");
			buildTable SetCursorHint("HINT_NOICON");
			buildTable waittill("trigger", player);

			buildTable SetHintString("");

			playfx(level._effect["powerup_grabbed"] ,GetEnt("c_table","targetname").origin);

			player thread do_knuckle_crack();

			wait(2.7);

			buildTable SetHintString("Press and hold &&1 for Fire Staff");
			buildTable SetCursorHint("HINT_NOICON");

			raygun_model = GetEnt("c_stafffire", "targetname");
			raygun_model show();

			buildTable waittill("trigger", player);
			
			weapon = getweapon("staff_fire");
		    player giveweapon(weapon);
		    player switchtoweapon(weapon);  

		    raygun_model = GetEnt("c_stafffire", "targetname");
			raygun_model hide();

			buildTable delete();
		}
		break;
	}
}

function private do_knuckle_crack()
{
	self endon("disconnect");
	self upgrade_knuckle_crack_begin();
	
	self util::waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" );
	
	self upgrade_knuckle_crack_end();
	
}


//	Switch to the knuckles
//
function private upgrade_knuckle_crack_begin()
{
	self zm_utility::increment_is_drinking();
	
	self zm_utility::disable_player_move_states(true);

	primaries = self GetWeaponsListPrimaries();

	original_weapon = self GetCurrentWeapon();
	weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK );
	
	

	self GiveWeapon( weapon );
	self SwitchToWeapon( weapon );
}

//	Anim has ended, now switch back to something
//
function private upgrade_knuckle_crack_end()
{
	self zm_utility::enable_player_move_states();
	
	weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK );

	// TODO: race condition?
	if ( self laststand::player_is_in_laststand() || IS_TRUE( self.intermission ) )
	{
		self TakeWeapon(weapon);
		return;
	}

	self zm_utility::decrement_is_drinking();

	self TakeWeapon(weapon);
	primaries = self GetWeaponsListPrimaries();
	if( IS_DRINKING(self.is_drinking) )
	{
		return;
	}
	else
	{
		self zm_weapons::switch_back_primary_weapon();
	}
}



Once you are done, save it and close it.

4) Open your map in radiant, right click on the camera view and click "misc > prefab" it will pop up a folder. Click "zm > buildable_staff".

You will see : "firestaff_assembly.map " = You can't see the model. You can only see the model when you crafted the Staff. NOTE : You can't pick it, it is not a trigger.

" firestaff_build_and_pickup.map " = This is a Trigger. You can build it and pick the staff there.

"firestaff_part1.map " = Part1

" firestaff_part2.map " = Part2

" firestaff_part3.map " = Part3


5) Put the " firestaff_build_and_pickup.map " beside the table. IT MUST BE FACING YOUR CRAFTING DIRECTION OR ELSE IT WON'T WORK.

Remember to Stamp the prefab for " firestaff_build_and_pickup.map ". "Shift + Left Click" the Trigger and go to "Prefab > Stamp Prefab" at the top left side.




6) Put the " firestaff_assembly.map " on the table or whatever you want.



7) Put the " firestaff_part1.map " , " firestaff_part2.map " and " firestaff_part3.map " on the floor or wherever you want so that players can pick it up.



8) [ OPTIONAL ] Changing the model for the Parts. Stamp the prefabs and "Shift + Left Click" the model and press "m" on your keyboard. Pick your own model and you are done!

NOTE : The trigger must be bigger than the model or else the players can't be able to pick the parts up.



9) Save and Close your radiant. Click "Compile" , "Light" , "Link" , "Run" and build your Mod!


Now Pick up all the parts and Craft the Staff of Fire! Good Luck and Have Fun!

<hr>
Credits : Shinged
Jia909
<h4> </h4>


ModmeBot:

Reply By: itznvy

ii R3cKYOuRSOul x
Hi Noah Gamerscore, I created a buildable fire staff. You can use this in your map as well! ROOT FOLDER = C:\Program Files (x86)\Steam\steamapps\common\Call of Duty Black Ops III 1) Download the prefabs here : 2) Drag the "map_source" folder to your root folder. 3) Open your "MAPNAME.gsc" file. This is the scripting part 3a) Paste this [Spoilers] Show / Hide #define PAP_WEAPON_KNUCKLE_CRACK "zombie_knuckle_crack" UNDER this [Spoilers] Show / Hide //#using scripts\zm\_zm_powerup_weapon_minigun; 3b) Paste this [Spoilers] Show / Hide thread build_staff_fire(); thread build_fire(); UNDER this [Spoilers] Show / Hide level.pathdist_type = PATHDIST_ORIGINAL; 3c) Paste this to the bottom of the file [Spoilers] Show / Hide function build_staff_fire() { staff_model = GetEnt("c_stafffire", "targetname"); staff_model hide(); buildTable = getEnt("c_staff_table", "targetname"); buildTable SetHintString("Additional Parts Required"); buildTable SetCursorHint("HINT_NOICON"); level.allParts = 0; level.finishedCraft = 3; level thread pick1(); level thread pick2(); level thread pick3(); //level thread build(); } function pick1() { pick_trig1 = getent("c_pick1", "targetname"); pick_trig1 SetHintString("Press and hold &&1 to pickup part"); pick_trig1 SetCursorHint("HINT_NOICON"); pick_model1 = getent("c_pickmodel1", "targetname"); while(1) { pick_trig1 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick1","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig1 delete(); pick_model1 delete(); } function pick2() { pick_trig2 = getent("c_pick2", "targetname"); pick_trig2 SetHintString("Press and hold &&1 to pickup part"); pick_trig2 SetCursorHint("HINT_NOICON"); pick_model2 = getent("c_pickmodel2", "targetname"); while(1) { pick_trig2 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick2","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig2 delete(); pick_model2 delete(); } function pick3() { pick_trig3 = getent("c_pick3", "targetname"); pick_trig3 SetHintString("Press and hold &&1 to pickup part"); pick_trig3 SetCursorHint("HINT_NOICON"); pick_model3 = getent("c_pickmodel3", "targetname"); while(1) { pick_trig3 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick3","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig3 delete(); pick_model3 delete(); } function build_fire() { while(1) { self waittill( level.allParts >= level.finishedCraft ); if ( level.allParts >= level.finishedCraft ) { buildTable = GetEnt("c_table", "targetname"); buildTable SetHintString("Press and hold &&1 to craft"); buildTable SetCursorHint("HINT_NOICON"); buildTable waittill("trigger", player); buildTable SetHintString(""); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_table","targetname").origin); player thread do_knuckle_crack(); wait(2.7); buildTable SetHintString("Press and hold &&1 for Fire Staff"); buildTable SetCursorHint("HINT_NOICON"); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model show(); buildTable waittill("trigger", player); weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model hide(); buildTable delete(); } break; } } function private do_knuckle_crack() { self endon("disconnect"); self upgrade_knuckle_crack_begin(); self util::waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" ); self upgrade_knuckle_crack_end(); } // Switch to the knuckles // function private upgrade_knuckle_crack_begin() { self zm_utility::increment_is_drinking(); self zm_utility::disable_player_move_states(true); primaries = self GetWeaponsListPrimaries(); original_weapon = self GetCurrentWeapon(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); self GiveWeapon( weapon ); self SwitchToWeapon( weapon ); } // Anim has ended, now switch back to something // function private upgrade_knuckle_crack_end() { self zm_utility::enable_player_move_states(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); // TODO: race condition? if ( self laststand::player_is_in_laststand() || IS_TRUE( self.intermission ) ) { self TakeWeapon(weapon); return; } self zm_utility::decrement_is_drinking(); self TakeWeapon(weapon); primaries = self GetWeaponsListPrimaries(); if( IS_DRINKING(self.is_drinking) ) { return; } else { self zm_weapons::switch_back_primary_weapon(); } } Once you are done, save it and close it. 4) Open your map in radiant, right click on the camera view and click "misc > prefab" it will pop up a folder. Click "zm > buildable_staff". You will see : " firestaff_assembly.map " = You can't see the model. You can only see the model when you crafted the Staff. NOTE : You can't pick it, it is not a trigger. " firestaff_build_and_pickup.map " = This is a Trigger. You can build it and pick the staff there. " firestaff_part1.map " = Part1 " firestaff_part2.map " = Part2 " firestaff_part3.map " = Part3 5) Put the " firestaff_build_and_pickup.map " beside the table. IT MUST BE FACING YOUR CRAFTING DIRECTION OR ELSE IT WON'T WORK. Remember to Stamp the prefab for " firestaff_build_and_pickup.map ". "Shift + Left Click" the Trigger and go to "Prefab > Stamp Prefab" at the top left side. 6) Put the " firestaff_assembly.map " on the table or whatever you want. 7) Put the " firestaff_part1.map " , " firestaff_part2.map " and " firestaff_part3.map " on the floor or wherever you want so that players can pick it up. 8) [ OPTIONAL ] Changing the model for the Parts. Stamp the prefabs and "Shift + Left Click" the model and press "m" on your keyboard. Pick your own model and you are done! NOTE : The trigger must be bigger than the model or else the players can't be able to pick the parts up. 9) Save and Close your radiant. Click "Compile" , "Light" , "Link" , "Run" and build your Mod! Now Pick up all the parts and Craft the Staff of Fire! Good Luck and Have Fun! Credits : Shinged Jia909

**** 1 script error(s):
"build" with 0 parameters in "scripts/zm/zm_proclamation.gsc" at line 251 ****
**** Unresolved external "build" with 0 parameters in "scripts/zm/zm_proclamation.gsc" ****


ModmeBot:

Reply By: Noah Gamerscore

ii R3cKYOuRSOul x
Hi Noah Gamerscore, I created a buildable fire staff. You can use this in your map as well! ROOT FOLDER = C:\Program Files (x86)\Steam\steamapps\common\Call of Duty Black Ops III 1) Download the prefabs here : 2) Drag the "map_source" folder to your root folder. 3) Open your "MAPNAME.gsc" file. This is the scripting part 3a) Paste this [Spoilers] Show / Hide #define PAP_WEAPON_KNUCKLE_CRACK "zombie_knuckle_crack" UNDER this [Spoilers] Show / Hide //#using scripts\zm\_zm_powerup_weapon_minigun; 3b) Paste this [Spoilers] Show / Hide thread build_staff_fire(); thread build_fire(); UNDER this [Spoilers] Show / Hide level.pathdist_type = PATHDIST_ORIGINAL; 3c) Paste this to the bottom of the file [Spoilers] Show / Hide function build_staff_fire() { staff_model = GetEnt("c_stafffire", "targetname"); staff_model hide(); buildTable = getEnt("c_staff_table", "targetname"); buildTable SetHintString("Additional Parts Required"); buildTable SetCursorHint("HINT_NOICON"); level.allParts = 0; level.finishedCraft = 3; level thread pick1(); level thread pick2(); level thread pick3(); //level thread build(); } function pick1() { pick_trig1 = getent("c_pick1", "targetname"); pick_trig1 SetHintString("Press and hold &&1 to pickup part"); pick_trig1 SetCursorHint("HINT_NOICON"); pick_model1 = getent("c_pickmodel1", "targetname"); while(1) { pick_trig1 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick1","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig1 delete(); pick_model1 delete(); } function pick2() { pick_trig2 = getent("c_pick2", "targetname"); pick_trig2 SetHintString("Press and hold &&1 to pickup part"); pick_trig2 SetCursorHint("HINT_NOICON"); pick_model2 = getent("c_pickmodel2", "targetname"); while(1) { pick_trig2 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick2","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig2 delete(); pick_model2 delete(); } function pick3() { pick_trig3 = getent("c_pick3", "targetname"); pick_trig3 SetHintString("Press and hold &&1 to pickup part"); pick_trig3 SetCursorHint("HINT_NOICON"); pick_model3 = getent("c_pickmodel3", "targetname"); while(1) { pick_trig3 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick3","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig3 delete(); pick_model3 delete(); } function build_fire() { while(1) { self waittill( level.allParts >= level.finishedCraft ); if ( level.allParts >= level.finishedCraft ) { buildTable = GetEnt("c_table", "targetname"); buildTable SetHintString("Press and hold &&1 to craft"); buildTable SetCursorHint("HINT_NOICON"); buildTable waittill("trigger", player); buildTable SetHintString(""); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_table","targetname").origin); player thread do_knuckle_crack(); wait(2.7); buildTable SetHintString("Press and hold &&1 for Fire Staff"); buildTable SetCursorHint("HINT_NOICON"); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model show(); buildTable waittill("trigger", player); weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model hide(); buildTable delete(); } break; } } function private do_knuckle_crack() { self endon("disconnect"); self upgrade_knuckle_crack_begin(); self util::waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" ); self upgrade_knuckle_crack_end(); } // Switch to the knuckles // function private upgrade_knuckle_crack_begin() { self zm_utility::increment_is_drinking(); self zm_utility::disable_player_move_states(true); primaries = self GetWeaponsListPrimaries(); original_weapon = self GetCurrentWeapon(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); self GiveWeapon( weapon ); self SwitchToWeapon( weapon ); } // Anim has ended, now switch back to something // function private upgrade_knuckle_crack_end() { self zm_utility::enable_player_move_states(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); // TODO: race condition? if ( self laststand::player_is_in_laststand() || IS_TRUE( self.intermission ) ) { self TakeWeapon(weapon); return; } self zm_utility::decrement_is_drinking(); self TakeWeapon(weapon); primaries = self GetWeaponsListPrimaries(); if( IS_DRINKING(self.is_drinking) ) { return; } else { self zm_weapons::switch_back_primary_weapon(); } } Once you are done, save it and close it. 4) Open your map in radiant, right click on the camera view and click "misc > prefab" it will pop up a folder. Click "zm > buildable_staff". You will see : " firestaff_assembly.map " = You can't see the model. You can only see the model when you crafted the Staff. NOTE : You can't pick it, it is not a trigger. " firestaff_build_and_pickup.map " = This is a Trigger. You can build it and pick the staff there. " firestaff_part1.map " = Part1 " firestaff_part2.map " = Part2 " firestaff_part3.map " = Part3 5) Put the " firestaff_build_and_pickup.map " beside the table. IT MUST BE FACING YOUR CRAFTING DIRECTION OR ELSE IT WON'T WORK. Remember to Stamp the prefab for " firestaff_build_and_pickup.map ". "Shift + Left Click" the Trigger and go to "Prefab > Stamp Prefab" at the top left side. 6) Put the " firestaff_assembly.map " on the table or whatever you want. 7) Put the " firestaff_part1.map " , " firestaff_part2.map " and " firestaff_part3.map " on the floor or wherever you want so that players can pick it up. 8) [ OPTIONAL ] Changing the model for the Parts. Stamp the prefabs and "Shift + Left Click" the model and press "m" on your keyboard. Pick your own model and you are done! NOTE : The trigger must be bigger than the model or else the players can't be able to pick the parts up. 9) Save and Close your radiant. Click "Compile" , "Light" , "Link" , "Run" and build your Mod! Now Pick up all the parts and Craft the Staff of Fire! Good Luck and Have Fun! Credits : Shinged Jia909

So just to make sure, this works with HarryBo21 Staffs from his Weapon Pack right ?


ModmeBot:

Reply By: ii R3cKYOuRSOul x
Yes


ModmeBot:

Reply By: ii R3cKYOuRSOul x

itznvy
ii R3cKYOuRSOul x Hi Noah Gamerscore, I created a buildable fire staff. You can use this in your map as well! ROOT FOLDER = C:\Program Files (x86)\Steam\steamapps\common\Call of Duty Black Ops III 1) Download the prefabs here : 2) Drag the "map_source" folder to your root folder. 3) Open your "MAPNAME.gsc" file. This is the scripting part 3a) Paste this [Spoilers] Show / Hide #define PAP_WEAPON_KNUCKLE_CRACK "zombie_knuckle_crack" UNDER this [Spoilers] Show / Hide //#using scripts\zm\_zm_powerup_weapon_minigun; 3b) Paste this [Spoilers] Show / Hide thread build_staff_fire(); thread build_fire(); UNDER this [Spoilers] Show / Hide level.pathdist_type = PATHDIST_ORIGINAL; 3c) Paste this to the bottom of the file [Spoilers] Show / Hide function build_staff_fire() { staff_model = GetEnt("c_stafffire", "targetname"); staff_model hide(); buildTable = getEnt("c_staff_table", "targetname"); buildTable SetHintString("Additional Parts Required"); buildTable SetCursorHint("HINT_NOICON"); level.allParts = 0; level.finishedCraft = 3; level thread pick1(); level thread pick2(); level thread pick3(); //level thread build(); } function pick1() { pick_trig1 = getent("c_pick1", "targetname"); pick_trig1 SetHintString("Press and hold &&1 to pickup part"); pick_trig1 SetCursorHint("HINT_NOICON"); pick_model1 = getent("c_pickmodel1", "targetname"); while(1) { pick_trig1 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick1","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig1 delete(); pick_model1 delete(); } function pick2() { pick_trig2 = getent("c_pick2", "targetname"); pick_trig2 SetHintString("Press and hold &&1 to pickup part"); pick_trig2 SetCursorHint("HINT_NOICON"); pick_model2 = getent("c_pickmodel2", "targetname"); while(1) { pick_trig2 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick2","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig2 delete(); pick_model2 delete(); } function pick3() { pick_trig3 = getent("c_pick3", "targetname"); pick_trig3 SetHintString("Press and hold &&1 to pickup part"); pick_trig3 SetCursorHint("HINT_NOICON"); pick_model3 = getent("c_pickmodel3", "targetname"); while(1) { pick_trig3 waittill("trigger", player); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_pick3","targetname").origin); level.allParts++; //IPrintLnBold(level.allParts); thread build(); break; } pick_trig3 delete(); pick_model3 delete(); } function build_fire() { while(1) { self waittill( level.allParts >= level.finishedCraft ); if ( level.allParts >= level.finishedCraft ) { buildTable = GetEnt("c_table", "targetname"); buildTable SetHintString("Press and hold &&1 to craft"); buildTable SetCursorHint("HINT_NOICON"); buildTable waittill("trigger", player); buildTable SetHintString(""); playfx(level._effect["powerup_grabbed"] ,GetEnt("c_table","targetname").origin); player thread do_knuckle_crack(); wait(2.7); buildTable SetHintString("Press and hold &&1 for Fire Staff"); buildTable SetCursorHint("HINT_NOICON"); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model show(); buildTable waittill("trigger", player); weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); raygun_model = GetEnt("c_stafffire", "targetname"); raygun_model hide(); buildTable delete(); } break; } } function private do_knuckle_crack() { self endon("disconnect"); self upgrade_knuckle_crack_begin(); self util::waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" ); self upgrade_knuckle_crack_end(); } // Switch to the knuckles // function private upgrade_knuckle_crack_begin() { self zm_utility::increment_is_drinking(); self zm_utility::disable_player_move_states(true); primaries = self GetWeaponsListPrimaries(); original_weapon = self GetCurrentWeapon(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); self GiveWeapon( weapon ); self SwitchToWeapon( weapon ); } // Anim has ended, now switch back to something // function private upgrade_knuckle_crack_end() { self zm_utility::enable_player_move_states(); weapon = GetWeapon( PAP_WEAPON_KNUCKLE_CRACK ); // TODO: race condition? if ( self laststand::player_is_in_laststand() || IS_TRUE( self.intermission ) ) { self TakeWeapon(weapon); return; } self zm_utility::decrement_is_drinking(); self TakeWeapon(weapon); primaries = self GetWeaponsListPrimaries(); if( IS_DRINKING(self.is_drinking) ) { return; } else { self zm_weapons::switch_back_primary_weapon(); } } Once you are done, save it and close it. 4) Open your map in radiant, right click on the camera view and click "misc > prefab" it will pop up a folder. Click "zm > buildable_staff". You will see : " firestaff_assembly.map " = You can't see the model. You can only see the model when you crafted the Staff. NOTE : You can't pick it, it is not a trigger. " firestaff_build_and_pickup.map " = This is a Trigger. You can build it and pick the staff there. " firestaff_part1.map " = Part1 " firestaff_part2.map " = Part2 " firestaff_part3.map " = Part3 5) Put the " firestaff_build_and_pickup.map " beside the table. IT MUST BE FACING YOUR CRAFTING DIRECTION OR ELSE IT WON'T WORK. Remember to Stamp the prefab for " firestaff_build_and_pickup.map ". "Shift + Left Click" the Trigger and go to "Prefab > Stamp Prefab" at the top left side. 6) Put the " firestaff_assembly.map " on the table or whatever you want. 7) Put the " firestaff_part1.map " , " firestaff_part2.map " and " firestaff_part3.map " on the floor or wherever you want so that players can pick it up. 8) [ OPTIONAL ] Changing the model for the Parts. Stamp the prefabs and "Shift + Left Click" the model and press "m" on your keyboard. Pick your own model and you are done! NOTE : The trigger must be bigger than the model or else the players can't be able to pick the parts up. 9) Save and Close your radiant. Click "Compile" , "Light" , "Link" , "Run" and build your Mod! Now Pick up all the parts and Craft the Staff of Fire! Good Luck and Have Fun! Credits : Shinged Jia909 **** 1 script error(s): "build" with 0 parameters in "scripts/zm/zm_proclamation.gsc" at line 251 ******** Unresolved external "build" with 0 parameters in "scripts/zm/zm_proclamation.gsc" ****

Sorry for the errors, I updated the scripting part. Now all you have to do is REDO the steps for 3b and 3c.


ModmeBot:

Reply By: itznvy
okay. Thanks. I will test it tommorow. If it works is it possible you could do all of this for all 4 staffs?


ModmeBot:

Reply By: Noah Gamerscore
works great thank you for this, but I noticed a glitch that if you have 2 weapons and pick up the staff, it will take all your points away and same with all your guns. And Also do you think you can make this for the other staffs as well?
Thank you very much for the help.


ModmeBot:

Reply By: Scorpiolo

Noah Gamerscore
works great thank you for this, but I noticed a glitch that if you have 2 weapons and pick up the staff, it will take all your points away and same with all your guns. And Also do you think you can make this for the other staffs as well?Thank you very much for the help.


Try swapping:
weapon = getweapon("staff_fire");
player giveweapon(weapon);
player switchtoweapon(weapon);

For:
weaponname = "staff_fire";
weapon = getWeapon(weaponname); 
player zm_weapons::weapon_give(weapon); 
player zm_weapons::ammo_give(weapon);
player SwitchToWeapon(weapon);


ModmeBot:

Reply By: Noah Gamerscore

Scorpiolo
Noah Gamerscore works great thank you for this, but I noticed a glitch that if you have 2 weapons and pick up the staff, it will take all your points away and same with all your guns. And Also do you think you can make this for the other staffs as well?Thank you very much for the help. Try swapping: weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); For: weaponname = "staff_fire"; weapon = getWeapon(weaponname); player zm_weapons::weapon_give(weapon); player zm_weapons::ammo_give(weapon); player SwitchToWeapon(weapon);


Where is that located? is that mapname.gsc because I cant find it.


ModmeBot:

Reply By: itznvy

Noah Gamerscore
Scorpiolo Noah Gamerscore works great thank you for this, but I noticed a glitch that if you have 2 weapons and pick up the staff, it will take all your points away and same with all your guns. And Also do you think you can make this for the other staffs as well?Thank you very much for the help. Try swapping: weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); For: weaponname = "staff_fire"; weapon = getWeapon(weaponname); player zm_weapons::weapon_give(weapon); player zm_weapons::ammo_give(weapon); player SwitchToWeapon(weapon); Where is that located? is that mapname.gsc because I cant find it.

its in the instructions^^^


ModmeBot:

Reply By: Noah Gamerscore

Scorpiolo
Noah Gamerscore works great thank you for this, but I noticed a glitch that if you have 2 weapons and pick up the staff, it will take all your points away and same with all your guns. And Also do you think you can make this for the other staffs as well?Thank you very much for the help. Try swapping: weapon = getweapon("staff_fire"); player giveweapon(weapon); player switchtoweapon(weapon); For: weaponname = "staff_fire"; weapon = getWeapon(weaponname); player zm_weapons::weapon_give(weapon); player zm_weapons::ammo_give(weapon); player SwitchToWeapon(weapon);

So I tried the script you suggested for me to use and it still does it too me. not sure what is wrong