Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - josh1600

Heres the finished result
(-- Complex content (will be) removed from blockquote --)

So to start off, download this prefab https://mega.nz/#!M9sBhZCT!ewDyF1nJVaCDdHUtc8UrcN_tKXM6Zl0_L4ca7xblPSg
Place the prefab in root/map_source/_prefabs/ and your ready for radiant.

Radiant:
 All you need to do is open the prefab by going to misc > prefab and opening the prefab, then stamp the prefab and move the pieces where you want them to be. If your on a tutorial map then delete the other power switch or this wont work.

Script:
 Navigate over to your mapname.gsc in root/usermaps/mapname/scripts/zm/mapname.gsc (Not the CSC) and open it.

 Below this
#using scripts\zm\zm_usermap;
Add this
#define PAP_WEAPON_KNUCKLE_CRACK		"zombie_knuckle_crack"
At the bottom of the main function, add this
thread buildableinit();
And finally at the bottom of your gsc, paste this
function buildableinit()
{
buildTable = getEnt("powcraft_crafting_trig", "targetname");
buildTable SetHintString("Missing parts");
buildTable SetCursorHint("HINT_NOICON");

level.allParts = 0;
level.finishedCraft = 2;

power_trigger = GetEnt("use_elec_switch", "targetname");
power_trigger TriggerEnable( false );
power_handle_model = GetEnt("elec_switch", "script_noteworthy");
power_handle_model hide();
power_clip = GetEnt("powcraft_clip_build", "targetname");
power_clip hide();
power_shaft_model = GetEnt("powcraft_build1", "targetname");
power_shaft_model hide();

level thread pick1();
level thread pick2();
}

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

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

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

level.allParts++;

//IPrintLnBold(level.allParts);

thread build();

break;
}

pick_trig1 delete();
pick_model1 delete();
}

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

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

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

level.allParts++;

//IPrintLnBold(level.allParts);

thread build();

break;
}

pick_trig2 delete();
pick_model2 delete();
}

function build()
{

while(1)
{
self waittill( level.allParts >= level.finishedCraft );

if ( level.allParts >= level.finishedCraft )
{
buildTable = GetEnt("powcraft_crafting_trig", "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("powcraft_crafting_trig","targetname").origin);

player thread do_knuckle_crack();

wait(2.7);

thread power_crafted();

buildTable delete();
}
break;
}
}

function power_crafted()
{
power_trigger = GetEnt("use_elec_switch", "targetname");
power_trigger TriggerEnable( true );
playfx(level._effect["powerup_grabbed"] ,GetEnt("use_elec_switch","targetname").origin);
power_handle_model = GetEnt("elec_switch", "script_noteworthy");
power_handle_model show();
power_clip = GetEnt("powcraft_clip_build", "targetname");
power_clip show();
power_shaft_model = GetEnt("powcraft_build1", "targetname");
power_shaft_model show();
}

/*
KNUCKLE CRACK SCRIPT
*/
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();
}
}
/*
KNUCKLE CRACK SCRIPT END
*/
 
I took the time to refactor your code and make it smarter:
Code: php
function buildableinit()
{
buildTable = GetEnt("powcraft_crafting_trig", "targetname");
buildTable SetHintString("Missing parts");
buildTable SetCursorHint("HINT_NOICON");

level.allParts = 0;

power_trigger = GetEnt("use_elec_switch", "targetname");
power_trigger TriggerEnable(false);
power_handle_model = GetEnt("elec_switch", "script_noteworthy");
power_clip = GetEnt("powcraft_clip_build", "targetname");
power_shaft_model = GetEnt("powcraft_build1", "targetname");
power_handle_model Hide();
power_clip Hide();
power_shaft_model Hide();

parts = GetEntArray("pap_part", "targetname")

foreach(part in parts)
part thread pickup_part(buildTable,power_trigger);

level flag::init("pap_built");
    level flag::wait_till("pap_built");

power_handle_model Show();
power_clip Show();
power_shaft_model Show();
}

function pickup_part(buildTable,power_trigger)
{
self SetHintString("Press and hold &&1 to pickup part");
self SetCursorHint("HINT_NOICON");
pick_model1 = GetEnt(self.target, "targetname");

self waittill("trigger", player);
PlayFx(level._effect["powerup_grabbed"] ,pick_model1.origin);

level.allParts++;
if(level.allParts == 2)
self thread build_table(power_trigger);

self Delete();
pick_model1 Delete();
}

function build_table(power_trigger)
{
self buildTable SetHintString("Press and hold &&1 to craft");
self buildTable waittill("trigger", player);
self buildTable SetHintString("");

//playfx(level._effect["powerup_grabbed"] ,GetEnt("powcraft_crafting_trig","targetname").origin);
player thread do_knuckle_crack();
wait 2.7;
self delete();
power_trigger TriggerEnable(true);
PlayFx(level._effect["powerup_grabbed"] ,self.origin);
    level flag::set("pap_built");
}

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

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();
self GiveWeapon(weapon);
self SwitchToWeapon(weapon);
}

function private upgrade_knuckle_crack_end()
{
self zm_utility::enable_player_move_states();

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();
}
With more time would make it better but haven't got any spare atm
23 days ago
It's because no sunlight. Open the wall up to allow sun light in for it to render.
693 days ago
Latest progress highlights of the custom zombies map I am developing
736 days ago
It's nothing to do with coding. What's happening is the game is seeing 2 identical assets in APE, so what you should do is go into APE and find that material, and delete one of the 2.

Do what Jdcobra said to fix it. If the mtls are actually different then you may wish to rename one of them and to update the asset which uses it. Sometimes people use the same name for different mtls which a just delete can mess up. Alternative is to use MAKECENTS third party launcher which I think has an auto dupe removal feature. Not 100% sure as I haven't used it.
744 days ago

Adding Player Respawn Locations: Radiant Call of Duty Black Ops 3 Mod Tools Tutorial Series

This tutorial walks-through all that is needed to add player respawns into your custom black ops 3 zombies maps. This will allow you to enter the next round in a different location and improves overall gameplay on custom maps.

Get the prefab here: http://phabricator.aviacreations.com/w/black_ops_3/basics/setting_up_respawn_points/
746 days ago

Model & Texture Conjunction Packs: Radiant Call of Duty Black Ops 3 Mod Tools Tutorial Series

This video dives into detailing using texture and model packs. It also gives tips on how to make better looking building work and applying other detailing techniques to achieve a much improved mapping style. Included along the way are many other little tricks that will help you make better maps.

Not only is this tutorial for Black Ops 3 Radiant Black, it can also be applied to the Call of Duty World at War Radiant and also most other Radiant Editors.
747 days ago
Standard Version
Part 1: First Planning & Setup

Part 2: Building the Geo

Part 3: Geo | Prefabs | Clipping | HUD Icons | Testing

Part 3.1: Extended Part 3 Images | Testing

Part 4: Geo | Detail | Fonts | Testing | Images

Part 5: Playing the Standard Version

Hardcore Version
Part 6: Adding Obstacles | Adding Spawners

Part 7: Adding Dragon | Images | Testing | Upload

Part 8: Playing the Hardcore Version




747 days ago
We got very close on the last try but died due to taking risks haha.
747 days ago
THE LAST DRAGON

Download Standard Version

Download Hardcore Version

Intro
Welcome to The Last Dragon. A map made during a marathon live development stream on YouTube for those who fancy a little challenge. Expect harder zombies and an interesting view. This time a little eastern spice! See if you can make it to the top of the Great Wall of China without dying!
Many Thanks to all who came to participate in the development streams! :D
If you are someone who likes more detail, big easter eggs, custom weapons, custom sounds, custom traps, custom Sq objectives... then you'll be pleased to know I am in the development stage of some far bigger projects. Including Goldeneye Remastered & A Horror Asylum. Follow the whole developments live on YouTube.

Gallery of Images
Sorry but you are not allowed to view spoiler contents.

Features
Sorry but you are not allowed to view spoiler contents.

YouTube
Sorry but you are not allowed to view spoiler contents.

Credits
Sorry but you are not allowed to view spoiler contents.

Leaderboards HH:MM:SS
Sorry but you are not allowed to view spoiler contents.

Known Bugs
Sorry but you are not allowed to view spoiler contents.
747 days ago
I am not clued up on fastfile errors. Would suggest trying to verify game cache integrity and perhaps a full recompile. Best to ask on the active modding discords to find someone who has ran into this. UGX has a discord: https://discord.gg/Jkb5sKt
767 days ago

Here are some of the essential tools that everyone mapping should know of, if you don't then sit down with a nice cuppa for a little knowledge :)

Not only is this tutorial for Black Ops 3 Radiant Black, it can also be applied to the Call of Duty World at War Radiant and also most other Radiant Editors.
780 days ago
Enjoyed the challenge of this map. Good stuff Mr FilthySandwich :D
862 days ago
Better late than never :D
897 days ago

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
Loading ...