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

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 - shinged

Hey,
I did everything in this video(http://www.youtube.com/watch?v=gHpI5gUAZSM) and notepad(http://pastebin.com/qYbZNxpd) to add a buyable ending to my map, and it managed to brake it!
When I build my map it comes up with this:

Linking "zm_ufo" (usermaps\zm_ufo stable 2535893 v593):
processing...

^1ERROR: Could not open 'scripts/zm/zm_ufo.gsc'

  scriptparsetree:scripts/zm/zm_ufo.gsc
    csv:zone_source/zm_ufo.zone

done: 0m15.40s

Linking "en_zm_ufo" (usermaps\zm_ufo stable 2535893 v593):
processing...
done: 0m4.05s

I have no idea on what to do, all my weeks of hard work on my map is unplayable :(
My map is on the workshop btw if that helps...
Whoever manages to resolve this problem credit will be given to them on the maps workshop page.


My Zone File:
>class,zm_mod_level
>group,modtools

xmodel,skybox_default_day
material,luts_t7_default
   
// BSP
col_map,maps/zm/zm_ufo.d3dbsp
gfx_map,maps/zm/zm_ufo.d3dbsp

// Audio
sound,zm_ufo

scriptparsetree,scripts/zm/zm_ufo.gsc
scriptparsetree,scripts/zm/zm_ufo.csc

// NSZ Buyable Ending
   scriptparsetree,scripts/_NSZ/nsz_buyable_ending.gsc



My zm_map.gsc (the part to do with the ending):
#using scripts\zm\zm_usermap;

// NSZ Temp Wall Buys
   level thread buyable_ending::init();

//*****************************************************************************
// MAIN
//*****************************************************************************

function main()
{

// NSZ Buyable Ending
   #using scripts\_NSZ\nsz_buyable_ending;

   zm_usermap::main();

First you should use code boxes, makes reading it alot easier. You need to move this
Code Snippet
Plaintext
#using scripts\_NSZ\nsz_buyable_ending;
to the top of your code
7 years ago
im getting this error?
^1}
^1^
^1ERR(6E) scripts/custom/shootable.gsc (157,1)  : Compiler Internal Error :  Unresolved external 'zm_powerups::specific_powerup_drop'

You gotta include the powerups script in your gsc.
Code Snippet
Plaintext
#using scripts\zm\zm_powerups;

Double Post Merge: October 28, 2016, 12:05:07 am
im getting this error?
^1}
^1^
^1ERR(6E) scripts/custom/shootable.gsc (157,1)  : Compiler Internal Error :  Unresolved external 'zm_powerups::specific_powerup_drop'

You gotta include the powerups script in your gsc.
Code Snippet
Plaintext
#using scripts\zm\zm_powerups;
7 years ago

how did you do it !
Code Snippet
Plaintext
function sewer_transport_1()
{
sewer_trig = GetEnt("sewer_trig_1", "targetname");
sewer_origin_start = GetEnt("sewer_origin_start", "targetname");
sewer_origin_one = GetEnt("sewer_origin_1", "targetname");
sewer_origin_two = GetEnt("sewer_origin_2", "targetname");
sewer_origin_three = GetEnt("sewer_origin_3", "targetname");
sewer_origin_four = GetEnt("sewer_origin_4", "targetname");
sewer_origin_five = GetEnt("sewer_origin_5", "targetname");
sewer_origin_end = GetEnt("sewer_ending", "targetname");
while(1)
{
sewer_trig SetHintString("Press and hold &&1 to go for a ride");
sewer_trig waittill("trigger", player);
player SetOrigin( sewer_origin_start.origin);
wait(0.01);
moveable = Spawn( "script_model", player.origin );
player PlayerLinkTo( moveable );
moveable MoveTo( sewer_origin_one.origin, 1, 0.5, 0 );
wait(1);
moveable MoveTo( sewer_origin_two.origin, 1, 0, 0.5);
wait(1);
moveable MoveTo( sewer_origin_three.origin, 1, 0.5, 0);
wait(1);
moveable MoveTo( sewer_origin_four.origin, 1, 0, 0);
wait(1);
moveable MoveTo( sewer_origin_five.origin, 1, 0, 0.5);
wait(1);
player Unlink();
moveable Delete();
wait(0.01);
player SetOrigin( sewer_origin_end.origin );
}
}

Well heres the script i quickly wrote for that, you can prob figure out how it works really easily from the script.
7 years ago
How would the thunder nades work with widows wine? Does it give the player the thunder nades, or does the script just wait for the player to throw a grenade then play the effect?

At the moment i am deleting the nade before it explodes, but if i set it to detonate() instead of delete() i think it would work with widowswine. The script just waits for the player to throw a nade.
7 years ago
Would you want something like this, unfortunately i have no idea how to make the zombies follow through it, but it can help you get to places.
7 years ago
Was wondering, what did you do for the scrolling text? I remember seeing that from bo2 but I never ended up doing any scripting on that game so I didn't figure out how they did it.

Is it a client announcement or something?
Code Snippet
Plaintext
function display_thunder_nade()
{
self.diamond_text = NewClientHudElem( self );
self.diamond_text.alignX = "center";
self.diamond_text.alignY = "middle";
self.diamond_text.horzAlign = "center";
self.diamond_text.vertAlign = "middle";
self.diamond_text.foreground = true;
self.diamond_text.font = "default";
self.diamond_text.fontScale = 2;
self.diamond_text.color = ( 1.0, 1.0, 1.0 );
self.diamond_text SetText("Charged Nade's Cell - Throw a nade...");
self.diamond_text setCOD7DecodeFX(100, 10000, 500);
wait(20);
self.diamond_text Destroy();
}

Code Snippet
Plaintext
self.diamond_text setCOD7DecodeFX(100, 10000, 500);
This is what makes it look like that
7 years ago
Hey guys, here's a few of my custom perks i made. These perks i call "cells" don't go away on down or death. It's a purchasable buff that lasts for the rest of the game.

If anyone want's a specific part of the script like how i made the thunder nade's work ill give it to you.
7 years ago
You could spawn a script model on the player origin, link the player to the script model, move the script model to the end of the sewer, then unlink/delete the script model. There is prob a better way to do this but i think that is what id do
7 years ago
Progress Update 10/24/16:

Im pretty much just having fun scripting a fuck ton of random things.
7 years ago
I've tried this out, I am getting the same issue as WoahDude, I even have it done in my user_aliases.

I originally didn't have test_sound due to me using someone else's user_aliases to help with sound locations. But this is what i put in it.

Spoiler: click to open...
# MUSIC_EE,,,,,,,,,,,,,,,,,,,,
# music,,,music\sabaton\rorkes_drift.wav,,,UIN_MOD,,,,,BUS_MUSIC,,,,,,100,100,,,,,,,,2,oldest,,,1,1,,,,,,2d,,,NONLOOPING,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Try deleting the script origin and putting in a script model and giving it the same kvp
7 years ago
I just thought id share this because it looked funny, it would look perfect if i actually bothered to paint the skin weights. This is  straight from the skin bind. if you guys are familiar with the process of making custom zombie models from world at war, it is pretty much the same. Anyway heres the model
8 years ago
Paste this at the bottom of your mapname gsc.
Code Snippet
Plaintext
/*
SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~
SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~ SOUND EASTER EGG ~
*/
function soundEasterEggInit()
{
level.soundEasterEgg = 0;
level.playEasterEgg = 3;
level.playSoundLocation = GetEnt("easter_egg_sound_location", "targetname"); // Create a script origin and set it to server, not client, then give it this targetname

thread shoot1();
thread shoot2();
thread shoot3();
}

function shoot1()
{
shoot_trig1 = GetEnt("egg_shoot1", "targetname");
shoot_trig1 waittill("trigger", player);
shoot_model1 = GetEnt("shoot_model1", "targetname");
shoot_model1 delete();
level.soundEasterEgg++;
thread finishedEasterEgg();
shoot_trig1 delete();
}

function shoot2()
{
shoot_trig2 = GetEnt("egg_shoot2", "targetname");
shoot_trig2 waittill("trigger", player);
shoot_model2 = GetEnt("shoot_model2", "targetname");
shoot_model2 delete();
level.soundEasterEgg++;
thread finishedEasterEgg();
shoot_trig2 delete();
}

function shoot3()
{
shoot_trig3 = GetEnt("egg_shoot3", "targetname");
shoot_trig3 waittill("trigger", player);
shoot_model3 = GetEnt("shoot_model3", "targetname");
shoot_model3 delete();
level.soundEasterEgg++;
thread finishedEasterEgg();
shoot_trig3 delete();
}

function finishedEasterEgg()
{
if(level.soundEasterEgg >= level.playEasterEgg)
{
IPrintLnBold("You have found all the triggers");
level.playSoundLocation PlaySound("sephiroth"); // Change "sephiroth" to the name of your soundalias.
}
}

Paste this in the main function of your mapname gsc
Code Snippet
Plaintext
thread soundEasterEggInit();

Now in radiant make 3 damage triggers, and put 3 script models in them (Models are optional).
Give the damage triggers the targetname "egg_shoot1" going from 1 to 3.
Give the models the targetname "shoot_model1" going from 1 to 3.

Now make a script origin and set it to server. Give it this kvp ("easter_egg_sound_location", "targetname").
8 years ago
Heres the finished result


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
Code Snippet
Plaintext
#using scripts\zm\zm_usermap;
Add this
Code Snippet
Plaintext
#define PAP_WEAPON_KNUCKLE_CRACK		"zombie_knuckle_crack"


 At the bottom of the main function, add this
Code Snippet
Plaintext
thread buildableinit();

 And finally at the bottom of your gsc, paste this
Code Snippet
Plaintext
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
*/
8 years ago
Hey guys, im here with a simple tutorial on how to add buyable powerups. This is what the end result should look like


 So lets start with the script, open up your mapname.gsc located in root/usermaps/mapname/scritps/zm/mapname.gsc
Make sure you dont open the CSC

 Now somewhere at the top of the gsc, add this
Code Snippet
Plaintext
#using scripts\zm\_zm_score;

 At the bottom of the main function, add this
Code Snippet
Plaintext
thread buyable_powerup();

 Now at the bottom of your gsc paste this
Code Snippet
Plaintext
function buyable_powerup()
{
level.buyable_powerup_cost = 100; // Cost for powerup
level.buyable_powerup_cooldown = 20; // Cooldown in seconds for buyable trigger
while(1)
{
while(1)
{
buyable_powerup_trig = GetEnt("buyable_powerup_trig", "targetname");
buyable_powerup_trig SetHintString("Press and hold &&1 to spawn Powerup [Cost: " + level.buyable_powerup_cost + "]");
buyable_powerup_trig SetCursorHint("HINT_NOICON");
buyable_powerup_spawn = struct::get( "powerup_spawn", "targetname" );
buyable_powerup_trig waittill("trigger", player);

if(player.score >= level.buyable_powerup_cost)
{
player zm_score::minus_to_player_score(level.buyable_powerup_cost);

break;
}
}

/*
If you want a specific powerup, then uncomment the buyable_powerup_spawn below and delete or comment out the one above it.
Available Powerups: double_points, free_perk, full_ammo, nuke, fire_sale, carpenter, insta_kill, shield_charge, bonfire_sale,
*/

buyable_powerup_spawn thread zm_powerups::special_powerup_drop(buyable_powerup_spawn.origin);
//buyable_powerup_spawn thread zm_powerups::specific_powerup_drop("full_ammo", buyable_powerup_spawn.origin);

buyable_powerup_trig SetHintString("Recharing...");

wait(level.buyable_powerup_cooldown);
}
}


 Now for the radiant part, all you need is two things, the trigger to buy the powerup and the script_struct for where the powerup will spawn.
Make a trigger_use with this kvp
Code Snippet
Plaintext
"buyable_powerup_trig", "targetname"
Make a script_struct with this kvp
Code Snippet
Plaintext
"powerup_spawn", "targetname"
8 years ago
NG said he has already finished remapping "Last Resort" in Black ops 3 so I don't think this will be the first MC map.

If you remember this map
(Image removed from quote.)
(Image removed from quote.)

Even if im not really the "first", thats okay because im having alot of fun making this map anyway
8 years ago
Loading ...