


Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
// mortar strike
sound,mortar_strike,,,
weapon,sp/mortar_strike
material,hud_icon_m8_white_smoke
xmodel,projectile_us_smoke_grenade
xmodel,mortar_shell
fx,weapon/satchel/fx_explosion_satchel_generic
fx,blst_custom/streak_marker_smoke
fx,misc/fx_ui_airstrike_smk_green
maps\_blst_mortar_strike::init();
if( !( weapon_string == "fraggrenade" || weapon_string == "stielhandgranate" || weapon_string == "molotov" || weapon_string == "zombie_cymbal_monkey" ) )
|| weapon_string == "mortar_strike"
if( !( weapon_string == "fraggrenade" || weapon_string == "stielhandgranate" || weapon_string == "molotov" || weapon_string == "zombie_cymbal_monkey" || weapon_string == "mortar_strike" ) )
if( weapon_string != "fraggrenade" && weapon_string != "stielhandgranate" && weapon_string != "molotov" && weapon_string != "zombie_cymbal_monkey" )
&& weapon_string != "mortar_strike"
if( weapon_string != "fraggrenade" && weapon_string != "stielhandgranate" && weapon_string != "molotov" && weapon_string != "zombie_cymbal_monkey" && weapon_string != "mortar_strike" )
self GiveWeapon( weapon_string, 0 );
self GiveMaxAmmo( weapon_string );
self SwitchToWeapon( weapon_string );
if( weapon_string == "mortar_strike" )
{
self thread maps\_blst_mortar_strike::player_give_mortar();
play_weapon_vo("zombie_cymbal_monkey");
return;
}
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
////////////////////////////////////////////////
///// Mortar Strike: /////
///// by: BluntStuffy /////
///// Please give credit when used.. /////
////////////////////////////////////////////////
init()
{
// level thread test_mortar_strike(); // put this line back in to get a mortar strike 3 seconds after the game starts ( for testing )
level.mortar_drop_count = 35; // amount of mortars that will be launched
level.mortar_damages_other_players = false; // if other players can take damage from your mortar strike
level.player_mortar_radius = 250; // radius of effect of the mortars on the players
level.player_mortar_damage = 50; // max damage from a mortar, when a player is in the center of the radius
level.zombie_mortar_radius = 300; // radius of effect of the mortars on zombies
level.zombie_mortar_damage = 1200; // max damage from a mortar, when a zombie is in the center of the radius
level._effect[ "marker_explode" ] = loadfx( "misc/fx_ui_airstrike_smk_green");
level._effect[ "mortar_explosion" ] = loadfx( "weapon/satchel/fx_explosion_satchel_generic");
level._effect[ "mortar_trail" ] = loadfx( "weapon/grenade/fx_trail_rifle_grenade" );
precachemodel( "mortar_shell" );
}
test_mortar_strike()
{
wait 3;
player = get_players();
for( i=0 ;i<player.size ; i++ )
{
player[i] thread player_give_mortar();
}
}
player_give_mortar()
{
self giveweapon("mortar_strike");
self setactionslot(3,"weapon","mortar_strike");
self setweaponammostock("mortar_strike",1);
self thread player_marker_fired();
}
player_marker_fired()
{
self notify( "starting_mortar_watch" );
self endon( "starting_mortar_watch" );
while( 1 )
{
grenade = get_thrown_marker();
if( isdefined( grenade ) )
{
if( self maps\_laststand::player_is_in_laststand() )
{
grenade delete();
continue;
}
grenade hide();
model = spawn( "script_model", grenade.origin );
model SetModel( "projectile_us_smoke_grenade" );
model linkTo( grenade );
model.angles = grenade.angles;
velocitySq = 100000;
oldPos = grenade.origin;
while( velocitySq != 0 )
{
wait( 0.05 );
velocitySq = distanceSquared( grenade.origin, oldPos );
oldPos = grenade.origin;
}
model unlink();
model thread marker_model_cleanup( grenade );
level thread mortar_strike( grenade.origin, self );
}
wait 0.05;
}
}
get_thrown_marker()
{
self endon( "starting_mortar_watch" );
while( true )
{
self waittill( "grenade_fire", grenade, weapname );
if( weapname == "mortar_strike" )
{
return grenade;
}
wait 0.05;
}
}
marker_model_cleanup( grenade )
{
while( 1 )
{
if( !isDefined( grenade ) )
{
if( isDefined( self ) )
{
playfx( level._effect["marker_explode"], self.origin );
self delete();
}
break;
}
wait 0.05;
}
}
mortar_strike( origin, player )
{
mortar_count = level.mortar_drop_count;
mortar_impacts = [];
mortar = [];
for( i=0;i<mortar_count;i++ )
{
offset1 = randomintrange( -400, 401 );
offset2 = randomintrange( -400, 401 );
offset3 = origin+(0,0,75);
mortar_impacts[mortar_impacts.size] = (groundpos( origin+(offset1,offset2,offset3[2]) ) + (0,0,15) );
}
wait 3;
offset1 = randomintrange( 600, 701 );
offset2 = randomintrange( 600, 701 );
for( i=0;i<mortar_impacts.size;i++ )
{
mortar_angle = vectortoangles( mortar_impacts[i]+(offset1,offset2,2500) - mortar_impacts[i] );
mortar[i] = spawn( "script_model", mortar_impacts[i]+(offset1,offset2,2500) );
mortar[i] setmodel( "mortar_shell" );
mortar[i].angles = (mortar_angle-(90,0,90));
mortar[i] hide();
wait randomfloatrange( 0.10, 0.35 );
mortar[i] thread fire_mortar( mortar_impacts[i], player );
}
}
fire_mortar( impact_origin, player )
{
self show();
self.fx_tag = spawn( "script_model", self.origin );
self.fx_tag setmodel( "tag_origin" );
self.fx_tag.angles = self.angles;
self.fx_tag linkto( self );
playfxontag( level._effect["mortar_trail"], self.fx_tag, "tag_origin" );
self moveto( impact_origin, 0.8, 0.15, 0 );
playsoundatposition( "mortar_incoming", impact_origin );
wait 0.9;
self.fx_tag unlink();
self.fx_tag delete();
Earthquake( 0.6, 0.5, impact_origin, 450);
playfx( level._effect["mortar_explosion"], impact_origin );
playsoundatposition( "grenade_explode", impact_origin );
mortar_damage_players(impact_origin, player);
mortar_damage_zombies(impact_origin, player);
physicsexplosioncylinder( impact_origin, 400, 75, 1 );
self delete();
}
mortar_damage_players(impact_origin, player)
{
players = get_array_of_closest(impact_origin, get_players(), undefined, undefined, level.player_mortar_radius);
if( isdefined( players ) && players.size != 0 )
{
for(i=0;i<players.size;i++)
{
if( players[i] != player && !level.mortar_damages_other_players )
{
continue;
}
dist_mult = 1 - ( (distance( players[i].origin, impact_origin ))/level.player_mortar_radius );
damage = int( dist_mult*level.player_mortar_damage );
if( damage < 15 )
{
damage = 15;
}
RadiusDamage( players[i].origin, 10, damage, (damage-10) );
// iprintln( "player damage: "+damage );
}
}
}
mortar_damage_zombies(impact_origin, player)
{
zombs = get_array_of_closest(impact_origin, getaispeciesarray( "axis" ), undefined, undefined, level.zombie_mortar_radius);
if( isdefined( zombs ) && zombs.size != 0 )
{
for(i=0;i<zombs.size;i++)
{
dist_mult = 1 - ( (distance( zombs[i].origin, impact_origin ))/level.zombie_mortar_radius );
damage = int( dist_mult*level.zombie_mortar_damage );
if( damage < 75 )
{
damage = 75;
}
if( !zombs[i].gibbed && dist_mult > 0.3 )
{
refs = [];
refs[refs.size] = "guts";
refs[refs.size] = "right_arm";
refs[refs.size] = "left_arm";
refs[refs.size] = "right_leg";
refs[refs.size] = "left_leg";
refs[refs.size] = "no_legs";
zombs[i].a.gib_ref = animscripts\death::get_random( refs );
zombs[i] thread animscripts\death::do_gib();
}
zombs[i] dodamage( damage, self.origin, player );
// iprintln( "zombie damage: "+damage );
}
}
}
![]() | Has released one or more maps to the UGX-Mods community which have been added to the UGX Map Manager. |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Oil Rig Beta Access |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
player thread maps\_blst_mortar_strike::player_give_mortar();
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
Need help? Where do i put this code?
Problems:
Powerup "Max ammo" is not working
full_ammo_powerup( drop_item )
{
players = get_players();
for (i = 0; i < players.size; i++)
{
primaryWeapons = players[i] GetWeaponsList();
for( x = 0; x < primaryWeapons.size; x++ )
{
players[i] GiveMaxAmmo( primaryWeapons[x] );
}
}
// array_thread (players, ::full_ammo_on_hud, drop_item);
level thread full_ammo_on_hud( drop_item );
}
full_ammo_powerup( drop_item )
{
players = get_players();
for (i = 0; i < players.size; i++)
{
players[i] thread maps\_blst_mortar_strike::player_give_mortar(); // <---- Add Here!
primaryWeapons = players[i] GetWeaponsList();
for( x = 0; x < primaryWeapons.size; x++ )
{
players[i] GiveMaxAmmo( primaryWeapons[x] );
}
}
// array_thread (players, ::full_ammo_on_hud, drop_item);
level thread full_ammo_on_hud( drop_item );
}
In _zombiemode_powerups in the max ammo function, wich is this one: Code SnippetPlaintextfull_ammo_powerup( drop_item )
{
players = get_players();
for (i = 0; i < players.size; i++)
{
primaryWeapons = players[i] GetWeaponsList();
for( x = 0; x < primaryWeapons.size; x++ )
{
players[i] GiveMaxAmmo( primaryWeapons[x] );
}
}
// array_thread (players, ::full_ammo_on_hud, drop_item);
level thread full_ammo_on_hud( drop_item );
}
Put it in like this: Code SnippetPlaintextfull_ammo_powerup( drop_item )
{
players = get_players();
for (i = 0; i < players.size; i++)
{
players[i] thread maps\_blst_mortar_strike::player_give_mortar(); // <---- Add Here!
primaryWeapons = players[i] GetWeaponsList();
for( x = 0; x < primaryWeapons.size; x++ )
{
players[i] GiveMaxAmmo( primaryWeapons[x] );
}
}
// array_thread (players, ::full_ammo_on_hud, drop_item);
level thread full_ammo_on_hud( drop_item );
}
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
Hey,
The problem I am getting isn't only for this tutorial, but always when trying to follow tutorials since I started using UGX mod :S . When I edit a file, and close it, I get a popup asking if I want to change the filew in the archive. When I click yes, I get a new popup saying "access denied"
Could anyone help me with this?