Posts: 949
Threads: 111
Joined: Oct 2010
Reputation:
30
11-29-2010, 12:48
(This post was last modified: 11-30-2010, 18:34 by Eekhoorn.)
List of promod reflex features:
Sounds and music
-Leader dialog has been removed from the game.
-Music has been removed from the game.
-All maps have ambient noise removed. NOT COMPLETED.
Gameplay and Balancing
-The SMG class has been reduced in power.
-The AWP fix has been implemented.
-The nosway fix has been implemented.
-The bomb can now be dropped in S&D. NOT COMPLETED.
-Knife automelee and lunge has been removed.
Class optimization
-The Ak74u is now the default SMG.
-The AK47 is now the default Assault Rifle.
-The L96A1 is the only avaible sniper.
Visuals and FPS
-Camouflages are not enabled.
-The field of view is 90.
-All maps have aimbient particles and smoke removed. NOT COMPLETED.
-Fog has been further reduced troughout the game.
-The games desuration has been removed, resulting in more colour.
-Walls now contain less detail, improving FPS and visibility NOT COMPLETED.
-Player 'bob' has been removed when sprinting, e.g
-Dynamic lighting has been disabled NOT COMPLETED
-Shadows have been disabled
Additional Improvements
-Every kill gives +5 as score NOT COMPLETED
-The plant/defuse bar has been more accurate, by removing the bomb.
-Attack and Defence have replaced, Spetznatz, BlackOps, etc NOT COMPLETED.
-Every round has a strattime of 6 seconds.
-A timer has been added for strattime NOT COMPLETED
Guide
-Suicide PRESS ?? NOT COMPLETED
-Bombdrop PRESS ?? NOT COMPLETED
--
Posts: 719
Threads: 69
Joined: Nov 2010
Reputation:
76
11-29-2010, 13:29
(This post was last modified: 11-29-2010, 13:38 by master131.)
I was going to make one..
Here are my DVAR settings if you want them:
Code: doDvars()
{
// ==== Registration Optimizations ====
self setClientDvar("cl_maxpackets", 100);
self setClientDvar("Snaps", 30);
setDvar("sv_network_fps", 1000);
// ====================================
// ==== No Auto-Melee ====
self setClientDvar("aim_automelee_enabled", 0);
self setClientDvar("aim_automelee_range", 0);
self setClientDvar("cg_nopredict", 0);
// ======================
// ==== FPS/Colour Optimizations ====
self setClientDvar("cg_fov", 80);
self setClientDvar("cg_fovscale", 1.125);
self setClientDvar("r_specularcolorscale", 0);
self setClientDvar("r_dlightLimit", 0);
self setClientDvar("sm_enable", 0);
self setClientDvar("r_desaturation", 0);
self setClientDvar("r_zfeather", 0);
self setClientDvar("r_smc_enable", 0);
self setClientDvar("r_distortion", 0);
self setClientDvar("r_fog", 0);
// ============================
/// ==== League Settings ====
// ==== 6 Second Countdown ====
setDvar("scr_game_prematchperiod", 6);
// ==============================
// ==== No Sway ====
setDvar("bg_viewBobMax", 0);
setDvar("bg_weaponBobMax", 0);
setDvar("player_sprintCameraBob", 0);
// ================
// ==== Search and Destroy DVARS ====
setDvar("scr_sd_bombtimer", 45);
setDvar("scr_sd_defusetime", 7);
setDvar("scr_sd_multibomb", 0);
setDvar("scr_sd_numlives", 1);
setDvar("scr_sd_planttime", 5);
setDvar("scr_sd_playerrespawndelay", 0);
setDvar("scr_sd_roundlimit", 15);
setDvar("scr_sd_roundswitch", 7);
setDvar("scr_sd_scorelimit", 4);
setDvar("scr_sd_timelimit", 1.75);
setDvar("scr_sd_waverespawndelay", 0);
setDvar("scr_sd_winlimit", 8);
// ==================================
/// ==== End of League Settings ====
}
Disabling music:
_globallogic_audio.gsc
Code: #include maps\mp\_utility;
init()
{
game["music"]["defeat"] = "mus_defeat";
game["music"]["victory_spectator"] = "mus_defeat";
// game["music"]["winning"] = "mus_time_running_out_winning";
// game["music"]["losing"] = "mus_time_running_out_losing";
game["music"]["match_end"] = "mus_match_end";
// game["music"]["victory_tie"] = "mus_defeat";
/* game["music"]["suspense"] = [];
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_01";
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_02";
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_03";
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_04";
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_05";
game["music"]["suspense"][game["music"]["suspense"].size] = "mus_suspense_06";
*/
game["dialog"]["mission_success"] = "mission_success";
game["dialog"]["mission_failure"] = "mission_fail";
game["dialog"]["mission_draw"] = "draw";
game["dialog"]["round_success"] = "encourage_win";
game["dialog"]["round_failure"] = "encourage_lost";
game["dialog"]["round_draw"] = "draw";
// status
game["dialog"]["timesup"] = "timesup";
// game["dialog"]["winning"] = "winning";
// game["dialog"]["losing"] = "losing";
// game["dialog"]["min_draw"] = "min_draw";
// game["dialog"]["lead_lost"] = "lead_lost";
// game["dialog"]["lead_tied"] = "tied";
// game["dialog"]["lead_taken"] = "lead_taken";
// game["dialog"]["last_alive"] = "lastalive";
// game["dialog"]["boost"] = "generic_boost";
/* if ( !isDefined( game["dialog"]["offense_obj"] ) )
game["dialog"]["offense_obj"] = "generic_boost";
if ( !isDefined( game["dialog"]["defense_obj"] ) )
game["dialog"]["defense_obj"] = "generic_boost";
game["dialog"]["hardcore"] = "hardcore";
game["dialog"]["oldschool"] = "oldschool";
game["dialog"]["highspeed"] = "highspeed";
game["dialog"]["tactical"] = "tactical";
game["dialog"]["challenge"] = "challengecomplete";
game["dialog"]["promotion"] = "promotion";
*/
// game["dialog"]["bomb_acquired"] = "sd_bomb_taken_acquired";
// game["dialog"]["bomb_taken"] = "sd_bomb_taken_taken";
// game["dialog"]["bomb_lost"] = "sd_bomb_drop";
game["dialog"]["bomb_defused"] = "sd_bomb_defused";
game["dialog"]["bomb_planted"] = "sd_bomb_planted";
/* game["dialog"]["obj_taken"] = "securedobj";
game["dialog"]["obj_lost"] = "lostobj";
game["dialog"]["obj_defend"] = "defend_start";
game["dialog"]["obj_destroy"] = "destroy_start";
game["dialog"]["obj_capture"] = "capture_obj";
game["dialog"]["objs_capture"] = "capture_objs";
game["dialog"]["hq_located"] = "hq_located";
game["dialog"]["hq_enemy_captured"] = "hq_capture";
game["dialog"]["hq_enemy_destroyed"] = "hq_defend";
game["dialog"]["hq_secured"] = "hq_secured";
game["dialog"]["hq_offline"] = "hq_offline";
game["dialog"]["hq_online"] = "hq_online";
game["dialog"]["move_to_new"] = "new_positions";
game["dialog"]["attack"] = "attack";
game["dialog"]["defend"] = "defend";
game["dialog"]["offense"] = "offense";
game["dialog"]["defense"] = "defense";
game["dialog"]["halftime"] = "halftime";
game["dialog"]["overtime"] = "overtime";
game["dialog"]["side_switch"] = "switchingsides";
game["dialog"]["flag_taken"] = "ourflag";
game["dialog"]["flag_dropped"] = "ourflag_drop";
game["dialog"]["flag_returned"] = "ourflag_return";
game["dialog"]["flag_captured"] = "ourflag_capt";
game["dialog"]["enemy_flag_taken"] = "enemyflag";
game["dialog"]["enemy_flag_dropped"] = "enemyflag_drop";
game["dialog"]["enemy_flag_returned"] = "enemyflag_return";
game["dialog"]["enemy_flag_captured"] = "enemyflag_capt";
*/
/*game["dialog"]["capturing_a"] = "dom_capturing_a";
game["dialog"]["capturing_b"] = "dom_capturing_b";
game["dialog"]["capturing_c"] = "dom_capturing_c";
game["dialog"]["capturing_d"] = "dom_capturing_d";
game["dialog"]["capturing_e"] = "dom_capturing_e";
game["dialog"]["capturing_f"] = "dom_capturing_f";
game["dialog"]["captured_a"] = "dom_capture_a";
game["dialog"]["captured_b"] = "dom_capture_b";
game["dialog"]["captured_c"] = "dom_capture_c";
game["dialog"]["captured_d"] = "dom_capture_d";
game["dialog"]["captured_e"] = "dom_capture_e";
game["dialog"]["captured_f"] = "dom_capture_f";*/
/* game["dialog"]["securing_a"] = "dom_securing_a";
game["dialog"]["securing_b"] = "dom_securing_b";
game["dialog"]["securing_c"] = "dom_securing_c";
game["dialog"]["securing_d"] = "dom_securing_d";
game["dialog"]["securing_e"] = "dom_securing_e";
game["dialog"]["securing_f"] = "dom_securing_f";
game["dialog"]["secured_a"] = "dom_secured_a";
game["dialog"]["secured_b"] = "dom_secured_b";
game["dialog"]["secured_c"] = "dom_secured_c";
game["dialog"]["secured_d"] = "dom_secured_d";
game["dialog"]["secured_e"] = "dom_secured_e";
game["dialog"]["secured_f"] = "dom_secured_f";
game["dialog"]["losing_a"] = "dom_losing_a";
game["dialog"]["losing_b"] = "dom_losing_b";
game["dialog"]["losing_c"] = "dom_losing_c";
game["dialog"]["losing_d"] = "dom_losing_d";
game["dialog"]["losing_e"] = "dom_losing_e";
game["dialog"]["losing_f"] = "dom_losing_f";
game["dialog"]["lost_a"] = "dom_lost_a";
game["dialog"]["lost_b"] = "dom_lost_b";
game["dialog"]["lost_c"] = "dom_lost_c";
game["dialog"]["lost_d"] = "dom_lost_d";
game["dialog"]["lost_e"] = "dom_lost_e";
game["dialog"]["lost_f"] = "dom_lost_f";
*/
/*game["dialog"]["enemy_taking_a"] = "enemy_take_a";
game["dialog"]["enemy_taking_b"] = "enemy_take_b";
game["dialog"]["enemy_taking_c"] = "enemy_take_c";
game["dialog"]["enemy_taking_d"] = "enemy_take_d";
game["dialog"]["enemy_taking_e"] = "enemy_take_e";
game["dialog"]["enemy_taking_f"] = "enemy_take_f";
game["dialog"]["enemy_has_a"] = "enemy_has_a";
game["dialog"]["enemy_has_b"] = "enemy_has_b";
game["dialog"]["enemy_has_c"] = "enemy_has_c";
game["dialog"]["enemy_has_d"] = "enemy_has_d";
game["dialog"]["enemy_has_e"] = "enemy_has_e";
game["dialog"]["enemy_has_f"] = "enemy_has_f";*/
//War
/*
game["dialog"]["secure_flag"] = "secure_flag";
game["dialog"]["securing_flag"] = "securing_flag";
game["dialog"]["losing_flag"] = "losing_flag";
game["dialog"]["lost_flag"] = "lost_flag";
game["dialog"]["oneflag_enemy"] = "oneflag_enemy";
game["dialog"]["oneflag_friendly"] = "oneflag_friendly";
game["dialog"]["lost_all"] = "dom_lock_theytake";
game["dialog"]["secure_all"] = "dom_lock_wetake";
//squads
game["dialog"]["squad_move"] = "squad_move";
game["dialog"]["squad_30sec"] = "squad_30sec";
game["dialog"]["squad_winning"] = "squad_onemin_vic";
game["dialog"]["squad_losing"] = "squad_onemin_loss";
game["dialog"]["squad_down"] = "squad_down";
game["dialog"]["squad_bomb"] = "squad_bomb";
game["dialog"]["squad_plant"] = "squad_plant";
game["dialog"]["squad_take"] = "squad_takeobj";
//Player kicked
game["dialog"]["kicked"] = "player_kicked";
//Equipment and turret destroyed lines
game["dialog"]["sentry_destroyed"] = "dest_sentry";
game["dialog"]["sam_destroyed"] = "dest_sam";
game["dialog"]["tact_destroyed"] = "dest_tact";
game["dialog"]["equipment_destroyed"] = "dest_equip";
*/
// level thread suspenseMusic();
}
suspenseMusicForPlayer()
{
self endon("disconnect");
self thread set_music_on_player( "SILENT", false );
wait (1);
self thread set_music_on_player( "UNDERSCORE", false );
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Setting Music State Random Underscore " + self.pers["music"].returnState + " On player " + self getEntityNumber());
}
}
suspenseMusic()
{
level endon ( "game_ended" );
level endon ( "match_ending_soon" );
/#
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Starting random underscore" );
}
#/
wait 20;
while (1)
{
wait( randomintrange( 60, 85 ) );
/#
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Checking for random underscore" );
}
#/
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( !IsDefined( player.pers["music"].inque ) )
{
// ensure that false is default
player.pers["music"].inque = false;
}
if ( player.pers["music"].inque)
{
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Inque no random underscore" );
}
return;
}
if ( !IsDefined( player.pers["music"].currentState ) )
{
// ensure that false is default
player.pers["music"].currentState = "SILENT";
}
if( randomintrange( 0, 20 ) > 15 && player.pers["music"].currentState != "ACTION" && player.pers["music"].currentState != "TIME_OUT" )
{
player thread suspenseMusicForPlayer();
/#
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Starting random underscore" );
}
#/
}
}
}
}
announceRoundWinner( winner, delay )
{
if ( delay > 0 )
wait delay;
if ( !isDefined( winner ) || isPlayer( winner ) )
return;
if ( winner == "allies" )
{
//thread playSoundOnPlayers( "mus_round_win"+"_"+level.teamPostfix["allies"] );
//thread playSoundOnPlayers( "mus_round_loss"+"_"+level.teamPostfix["axis"] );
leaderDialog( "round_success", "allies" );
leaderDialog( "round_failure", "axis" );
}
else if ( winner == "axis" )
{
//thread playSoundOnPlayers( "mus_round_loss"+"_"+level.teamPostfix["allies"] );
//thread playSoundOnPlayers( "mus_round_win"+"_"+level.teamPostfix["axis"] );
leaderDialog( "round_success", "axis" );
leaderDialog( "round_failure", "allies" );
}
else
{
thread playSoundOnPlayers( "mus_round_draw"+"_"+level.teamPostfix["allies"] );
thread playSoundOnPlayers( "mus_round_draw"+"_"+level.teamPostfix["axis"] );
// leaderDialog( "mission_draw" );
}
}
announceGameWinner( winner, delay )
{
if ( delay > 0 )
wait delay;
if ( !isDefined( winner ) || isPlayer( winner ) )
return;
if ( winner == "allies" )
{
leaderDialog( "mission_success", "allies" );
leaderDialog( "mission_failure", "axis" );
}
else if ( winner == "axis" )
{
leaderDialog( "mission_success", "axis" );
leaderDialog( "mission_failure", "allies" );
}
else
{
leaderDialog( "mission_draw" );
}
}
doFlameAudio()
{
self endon("disconnect");
waittillframeend;
if (!isdefined ( self.lastFlameHurtAudio ) )
self.lastFlameHurtAudio = 0;
currentTime = gettime();
if ( self.lastFlameHurtAudio + level.fire_audio_repeat_duration + RandomInt( level.fire_audio_random_max_duration ) < currentTime )
{
self playLocalSound("vox_pain_small");
self.lastFlameHurtAudio = currentTime;
}
}
leaderDialog( dialog, team, group, excludeList, squadDialog )
{
assert( isdefined( level.players ) );
if ( level.splitscreen )
return;
if ( level.wagerMatch )
return;
if ( !isDefined( team ) )
{
leaderDialogBothTeams( dialog, "allies", dialog, "axis", group, excludeList );
return;
}
if ( level.splitscreen )
{
if ( level.players.size )
level.players[0] leaderDialogOnPlayer( dialog, group );
return;
}
if ( isDefined( excludeList ) )
{
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( (isDefined( player.pers["team"] ) && (player.pers["team"] == team )) && !maps\mp\gametypes\_globallogic_utils::isExcluded( player, excludeList ) )
player leaderDialogOnPlayer( dialog, group );
}
}
else
{
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( isDefined( player.pers["team"] ) && (player.pers["team"] == team ) )
player leaderDialogOnPlayer( dialog, group );
}
}
}
leaderDialogBothTeams( dialog1, team1, dialog2, team2, group, excludeList )
{
assert( isdefined( level.players ) );
if ( level.splitscreen )
return;
if ( level.splitscreen )
{
if ( level.players.size )
level.players[0] leaderDialogOnPlayer( dialog1, group );
return;
}
if ( isDefined( excludeList ) )
{
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
team = player.pers["team"];
if ( !isDefined( team ) )
continue;
if ( maps\mp\gametypes\_globallogic_utils::isExcluded( player, excludeList ) )
continue;
if ( team == team1 )
player leaderDialogOnPlayer( dialog1, group );
else if ( team == team2 )
player leaderDialogOnPlayer( dialog2, group );
}
}
else
{
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
team = player.pers["team"];
if ( !isDefined( team ) )
continue;
if ( team == team1 )
player leaderDialogOnPlayer( dialog1, group );
else if ( team == team2 )
player leaderDialogOnPlayer( dialog2, group );
}
}
}
leaderDialogOnPlayer( dialog, group )
{
if( isPregame() )
return;
team = self.pers["team"];
if ( level.splitscreen )
return;
if ( !isDefined( team ) )
return;
if ( team != "allies" && team != "axis" )
return;
if ( isDefined( group ) )
{
// ignore the message if one from the same group is already playing
if ( self.leaderDialogGroup == group )
return;
hadGroupDialog = isDefined( self.leaderDialogGroups[group] );
self.leaderDialogGroups[group] = dialog;
dialog = group;
// exit because the "group" dialog call is already in the queue
if ( hadGroupDialog )
return;
}
if ( !self.leaderDialogActive )
self thread playLeaderDialogOnPlayer( dialog, team );
else
self.leaderDialogQueue[self.leaderDialogQueue.size] = dialog;
}
playLeaderDialogOnPlayer( dialog, team )
{
self endon ( "disconnect" );
self.leaderDialogActive = true;
if ( isDefined( self.leaderDialogGroups[dialog] ) )
{
group = dialog;
dialog = self.leaderDialogGroups[group];
self.leaderDialogGroups[group] = undefined;
self.leaderDialogGroup = group;
}
if( level.allowAnnouncer )
{
if ( level.wagerMatch )
faction = "vox_wm_";
else
faction = game["voice"][team];
self playLocalSound( faction+game["dialog"][dialog] );
}
wait ( 3.0 );
self.leaderDialogActive = false;
self.leaderDialogGroup = "";
if ( self.leaderDialogQueue.size > 0 )
{
nextDialog = self.leaderDialogQueue[0];
for ( i = 1; i < self.leaderDialogQueue.size; i++ )
self.leaderDialogQueue[i-1] = self.leaderDialogQueue[i];
self.leaderDialogQueue[i-1] = undefined;
self thread playLeaderDialogOnPlayer( nextDialog, team );
}
}
musicController()
{
level endon ( "game_ended" );
level thread musicTimesOut();
if( isPregame() )
return;
//if ( !level.hardcoreMode )
level waittill ( "match_ending_soon" );
if ( isLastRound() || isOneRound() )
{
if ( !level.splitScreen )
{
if( game["teamScores"]["allies"] == game["teamScores"]["axis"] )
{
leaderDialog( "min_draw" );
}
else if( game["teamScores"]["allies"] > game["teamScores"]["axis"] )
{
/*if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning"], "allies" );
playSoundOnPlayers( game["music"]["losing"], "axis" );
}*/
leaderDialog( "winning", "allies", undefined, undefined, "squad_winning" );
leaderDialog( "losing", "axis", undefined, undefined , "squad_losing" );
}
else if ( game["teamScores"]["axis"] > game["teamScores"]["allies"] )
{
/*if ( !level.hardcoreMode )
{
playSoundOnPlayers( game["music"]["winning"], "axis" );
playSoundOnPlayers( game["music"]["losing"], "allies" );
}*/
leaderDialog( "winning", "axis", undefined, undefined, "squad_winning" );
leaderDialog( "losing", "allies", undefined, undefined , "squad_losing" );
}
else
{
/*if ( !level.hardcoreMode )
playSoundOnPlayers( game["music"]["losing"] );*/
leaderDialog( "timesup", "axis", undefined, undefined , "squad_30sec" );
leaderDialog( "timesup", "allies", undefined, undefined , "squad_30sec" );
}
//level waittill ( "match_ending_pretty_soon" );
//thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "MATCH_END", "both" , true, false );
//maps\mp\_music::setmusicstate( "TIME_OUT" );
level waittill ( "match_ending_very_soon" );
leaderDialog( "timesup", "axis", undefined, undefined , "squad_30sec" );
leaderDialog( "timesup", "allies", undefined, undefined , "squad_30sec" );
}
}
else
{
//if ( !level.hardcoreMode )
//playSoundOnPlayers( game["music"]["losing"] );
level waittill ( "match_ending_vox" );
//maps\mp\_music::setmusicstate( "MATCH_END" );
//thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "TIME_OUT", "both" , true, false );
leaderDialog( "timesup" );
}
}
musicTimesOut()
{
level endon( "game_ended" );
level waittill ( "match_ending_very_soon" );
// removed action music replaced with ending soon for more consistant messaging. CDC
// if( !IsDefined( level.playingActionMusic ) )
// level.playingActionMusic = false;
//IPrintLnBold( "30 SECS LEFT: Time Out Music State" );
// if( !level.playingActionMusic )
thread maps\mp\gametypes\_globallogic_audio::set_music_on_team( "TIME_OUT", "both" , true, false );
}
actionMusicSet()
{
level endon( "game_ended" );
level.playingActionMusic = true;
wait(45);
level.playingActionMusic = false;
}
play_2d_on_team( alias, team )
{
assert( isdefined( level.players ) );
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( isDefined( player.pers["team"] ) && (player.pers["team"] == team ) )
{
player playLocalSound( alias );
}
}
}
set_music_on_team( state, team, save_state, return_state, wait_time )
{
// Assert if there are no players
assert( isdefined( level.players ) );
if ( !IsDefined( team ) )
{
team = "both";
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - team undefined: Setting to both");
}
}
if ( !IsDefined( save_state ) )
{
save_sate = false;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - save_sate undefined: Setting to false");
}
}
if ( !IsDefined( return_state ) )
{
return_state = false;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Music System - return_state undefined: Setting to false");
}
}
if ( !IsDefined( wait_time ) )
{
wait_time = 0;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - wait_time undefined: Setting to 0");
}
}
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( team == "both" )
{
// if no team is set or team is set to "both" set same state for all players
player thread set_music_on_player ( state, save_state, return_state, wait_time );
}
else if ( isDefined( player.pers["team"] ) && (player.pers["team"] == team ) )
{
player thread set_music_on_player ( state, save_state, return_state, wait_time );
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Setting Music State " + state + " On player " + player getEntityNumber());
}
}
}
}
set_music_on_player( state, save_state, return_state, wait_time )
{
//self is player
self endon( "disconnect" );
assert( isplayer (self) );
if ( !IsDefined( save_state ) )
{
save_state = false;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Music System - save_sate undefined: Setting to false");
}
}
if ( !IsDefined( return_state ) )
{
return_state = false;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Music System - return_state undefined: Setting to false");
}
}
if ( !IsDefined( wait_time ) )
{
wait_time = 0;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - wait_time undefined: Setting to 0");
}
}
if ( !IsDefined( state ) )
{
state = "UNDERSCORE";
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - state undefined: Setting to UNDERSCORE");
}
}
maps\mp\_music::setmusicstate( state, self );
if ( isdefined ( self.pers["music"].currentState ) && save_state )
{
//If we want to save the sate we set return state to current state
self.pers["music"].returnState = state;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Saving Music State " + self.pers["music"].returnState + " On " + self getEntityNumber() );
}
}
// Set previous state to the current active state
self.pers["music"].previousState = self.pers["music"].currentState;
self.pers["music"].currentState = state;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Setting Music State " + state + " On player " + self getEntityNumber());
}
if ( isdefined ( self.pers["music"].returnState ) && return_state )
{
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Starting Return State " + self.pers["music"].returnState + " On " + self getEntityNumber() );
}
self set_next_music_state ( self.pers["music"].returnState, wait_time);
}
}
return_music_state_player( wait_time )
{
if ( !IsDefined( wait_time ) )
{
wait_time = 0;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - wait_time undefined: Setting to 0");
}
}
self set_next_music_state ( self.pers["music"].returnState, wait_time);
}
return_music_state_team( team, wait_time )
{
if ( !IsDefined( wait_time ) )
{
wait_time = 0;
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - wait_time undefined: Setting to 0");
}
}
for ( i = 0; i < level.players.size; i++ )
{
player = level.players[i];
if ( team == "both" )
{
// if no team is set or team is set to "both" set same state for all players
player thread set_next_music_state ( self.pers["music"].returnState, wait_time);
}
else if ( isDefined( player.pers["team"] ) && (player.pers["team"] == team ) )
{
player thread set_next_music_state ( self.pers["music"].returnState, wait_time);
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Setting Music State " + self.pers["music"].returnState + " On player " + player getEntityNumber());
}
}
}
}
set_next_music_state ( nextstate, wait_time )
{
// self is player
// set next state to latest in the que
self endon( "disconnect" );
self.pers["music"].nextstate = nextstate;
//Debug Print CDC
if( getdvarint( #"debug_music" ) > 0 )
{
println ("Music System - Setting next Music State " + self.pers["music"].nextstate + " On " + self getEntityNumber() );
}
if ( !IsDefined( self.pers["music"].inque ) )
{
// ensure that false is default
self.pers["music"].inque = false;
}
if ( self.pers["music"].inque )
{
// if we have a que waiting and another happens we do not change states yet
return;
//Debug Print CDC
println ("Music System - Music state in que" );
}
else
{
// set que to true while we wait
self.pers["music"].inque = true;
// wait time from state call default is 0
if ( wait_time )
{
wait wait_time;
}
// Set the most current music state
self set_music_on_player ( self.pers["music"].nextstate, false );
// remove the que return
self.pers["music"].inque = false;
}
}
getRoundSwitchDialog( switchType )
{
switch( switchType )
{
case "halftime":
return "halftime";
case "overtime":
return "overtime";
default:
return "side_switch";
}
}
_globallogic_spawn.gsc
Code: // BROUGHT TO YOU BY IT'S MODS
// VISIT WWW.ITSMODS.COM FOR ALL YOUR MODDING NEEDS
#include common_scripts\utility;
#include maps\mp\_utility;
TimeUntilSpawn( includeTeamkillDelay )
{
if ( level.inGracePeriod && !self.hasSpawned )
return 0;
respawnDelay = 0;
if ( self.hasSpawned )
{
result = self [[level.onRespawnDelay]]();
if ( isDefined( result ) )
respawnDelay = result;
else
respawnDelay = GetDvarInt( "scr_" + level.gameType + "_playerrespawndelay" );
if ( includeTeamkillDelay && self.teamKillPunish )
respawnDelay += maps\mp\gametypes\_globallogic_player::TeamKillDelay();
}
waveBased = (GetDvarInt( "scr_" + level.gameType + "_waverespawndelay" ) > 0);
if ( waveBased )
return self TimeUntilWaveSpawn( respawnDelay );
return respawnDelay;
}
maySpawn()
{
if ( isDefined( level.maySpawn ) && !( self [[level.maySpawn]]() ) )
{
return false;
}
if ( level.inOvertime )
return false;
if ( level.numLives )
{
if ( level.teamBased )
gameHasStarted = ( level.everExisted[ "axis" ] && level.everExisted[ "allies" ] );
else
gameHasStarted = (level.maxPlayerCount > 1) || ( !isOneRound() && !isFirstRound() );
if ( !self.pers["lives"] && gameHasStarted )
{
return false;
}
else if ( gameHasStarted )
{
// disallow spawning for late comers
if ( !level.inGracePeriod && !self.hasSpawned && !level.wagerMatch )
return false;
}
}
return true;
}
TimeUntilWaveSpawn( minimumWait )
{
// the time we'll spawn if we only wait the minimum wait.
earliestSpawnTime = gettime() + minimumWait * 1000;
lastWaveTime = level.lastWave[self.pers["team"]];
waveDelay = level.waveDelay[self.pers["team"]] * 1000;
if( waveDelay == 0 )
return 0;
// the number of waves that will have passed since the last wave happened, when the minimum wait is over.
numWavesPassedEarliestSpawnTime = (earliestSpawnTime - lastWaveTime) / waveDelay;
// rounded up
numWaves = ceil( numWavesPassedEarliestSpawnTime );
timeOfSpawn = lastWaveTime + numWaves * waveDelay;
// avoid spawning everyone on the same frame
if ( isdefined( self.waveSpawnIndex ) )
timeOfSpawn += 50 * self.waveSpawnIndex;
return (timeOfSpawn - gettime()) / 1000;
}
stopPoisoningAndFlareOnSpawn()
{
self endon("disconnect");
self.inPoisonArea = false;
self.inBurnArea = false;
self.inFlareVisionArea = false;
self.inGroundNapalm = false;
}
spawnPlayer()
{
pixbeginevent( "spawnPlayer_preUTS" );
self endon("disconnect");
self endon("joined_spectators");
self notify("spawned");
level notify("player_spawned");
self notify("end_respawn");
self setSpawnVariables();
if (!self.hasSpawned)
{
//if this is the first spawn, kicking off a thread to start the gamplay music
self thread sndStartMusicSystem ();
}
if ( level.teamBased )
self.sessionteam = self.team;
else
{
self.sessionteam = "none";
self.ffateam = self.team;
}
hadSpawned = self.hasSpawned;
self.sessionstate = "playing";
self.spectatorclient = -1;
self.killcamentity = -1;
self.archivetime = 0;
self.psoffsettime = 0;
self.statusicon = "";
self.damagedPlayers = [];
if ( GetDvarInt( #"scr_csmode" ) > 0 )
self.maxhealth = GetDvarInt( #"scr_csmode" );
else
self.maxhealth = maps\mp\gametypes\_tweakables::getTweakableValue( "player", "maxhealth" );
self.health = self.maxhealth;
self.friendlydamage = undefined;
self.hasSpawned = true;
self.spawnTime = getTime();
self.afk = false;
if ( self.pers["lives"] && ( !isDefined( level.takeLivesOnDeath ) || ( level.takeLivesOnDeath == false ) ) )
{
self.pers["lives"]--;
if ( self.pers["lives"] == 0 )
level notify( "player_eliminated" );
}
self.lastStand = undefined;
self.revivingTeammate = false;
self.burning = undefined;
self.disabledWeapon = 0;
self resetUsability();
self.diedOnVehicle= undefined;
if ( !self.wasAliveAtMatchStart )
{
if ( level.inGracePeriod || maps\mp\gametypes\_globallogic_utils::getTimePassed() < 20 * 1000 )
self.wasAliveAtMatchStart = true;
}
//self clearPerks();
// self setClientDvar( "cg_thirdPerson", "0" );
self setDepthOfField( 0, 0, 512, 512, 4, 0 );
if( level.console )
self setClientDvar( "cg_fov", "65" );
{
pixbeginevent("onSpawnPlayer");
if ( IsDefined( level.onSpawnPlayerUnified )
&& GetDvarInt( #"scr_disableunifiedspawning" ) == 0 )
{
self [[level.onSpawnPlayerUnified]]();
}
else
{
self [[level.onSpawnPlayer]]();
}
if ( IsDefined( level.playerSpawnedCB ) )
{
self [[level.playerSpawnedCB]]();
}
pixendevent();
}
self maps\mp\gametypes\_missions::playerSpawned();
pixendevent( "END: spawnPlayer_preUTS" );
level thread maps\mp\gametypes\_globallogic::updateTeamStatus();
pixbeginevent( "spawnPlayer_postUTS" );
self thread stopPoisoningAndFlareOnSpawn();
self StopBurning();
assert( maps\mp\gametypes\_globallogic_utils::isValidClass( self.class ) );
self maps\mp\gametypes\_class::setClass( self.class );
self maps\mp\gametypes\_class::giveLoadout( self.team, self.class );
if ( level.inPrematchPeriod )
{
self freeze_player_controls( true );
//self _disableWeapon();
self setClientDvar( "scr_objectiveText", maps\mp\gametypes\_globallogic_ui::getObjectiveHintText( self.pers["team"] ) );
team = self.pers["team"];
//CDC New music system
if( isDefined( self.pers["music"].spawn ) && self.pers["music"].spawn == false )
{
if (level.wagerMatch)
{
music = "SPAWN_WAGER";
}
else
{
music = undefined;
}
if(isDefined(music))
self thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( music, false, false );
self.pers["music"].spawn = true;
}
if ( level.splitscreen )
{
if ( isDefined( level.playedStartingMusic ) )
music = undefined;
else
level.playedStartingMusic = true;
}
// thread maps\mp\gametypes\_hud_message::oldNotifyMessage( game["strings"][team + "_name"], undefined, game["icons"][team], game["colors"][team], music );
thread maps\mp\gametypes\_hud_message::oldNotifyMessage( game["strings"][team + "_name"], undefined, game["icons"][team], game["colors"][team] );
if ( isDefined( game["dialog"]["gametype"] ) && (!level.splitscreen || self == level.players[0]) )
{
if( !isDefined( level.inFinalFight ) || !level.inFinalFight )
{
if( level.hardcoreMode )
self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "gametype_hardcore" );
else
self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "gametype" );
}
}
thread maps\mp\gametypes\_hud::showClientScoreBar( 5.0 );
}
else
{
self freeze_player_controls( false );
self enableWeapons();
if ( !hadSpawned && game["state"] == "playing" )
{
pixbeginevent("sound");
team = self.team;
//CDC New music system TODO add short spawn music
if( isDefined( self.pers["music"].spawn ) && self.pers["music"].spawn == false )
{
//self thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( "SPAWN_SHORT", false, false );
self.pers["music"].spawn = true;
}
if ( level.splitscreen )
{
if ( isDefined( level.playedStartingMusic ) )
music = undefined;
else
level.playedStartingMusic = true;
}
thread maps\mp\gametypes\_hud_message::oldNotifyMessage( game["strings"][team + "_name"], undefined, game["icons"][team], game["colors"][team] );
if ( isDefined( game["dialog"]["gametype"] ) && (!level.splitscreen || self == level.players[0]) )
{
if( !isDefined( level.inFinalFight ) || !level.inFinalFight )
{
if( level.hardcoreMode )
self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "gametype_hardcore" );
else
self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "gametype" );
//if ( team == game["attackers"] )
//self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "offense_obj", "introboost" );
//else
//self maps\mp\gametypes\_globallogic_audio::leaderDialogOnPlayer( "defense_obj", "introboost" );
}
}
self setClientDvar( "scr_objectiveText", maps\mp\gametypes\_globallogic_ui::getObjectiveHintText( self.pers["team"] ) );
thread maps\mp\gametypes\_hud::showClientScoreBar( 5.0 );
pixendevent("sound");
}
}
if ( GetDvar( #"scr_showperksonspawn" ) == "" )
setdvar( "scr_showperksonspawn", "1" );
// Make sure that we dont show the perks on spawn if we are in hardcore.
if ( level.hardcoreMode )
setdvar( "scr_showperksonspawn", "0" );
if ( !level.splitscreen && GetDvarInt( #"scr_showperksonspawn" ) == 1 && game["state"] != "postgame" )
{
pixbeginevent("showperksonspawn");
//Checks to make sure perks are allowed. - Leif
if ( GetDvarInt( #"scr_game_perks" ) == 1)
{
perks = maps\mp\gametypes\_globallogic::getPerks( self );
self maps\mp\gametypes\_hud_util::showPerk( 0, "specialty_null", 10);
self maps\mp\gametypes\_hud_util::showPerk( 1, perks[1], 10);
self maps\mp\gametypes\_hud_util::showPerk( 2, "specialty_null", 10);
self maps\mp\gametypes\_hud_util::showPerk( 3, "specialty_null", 10);
}
self thread maps\mp\gametypes\_globallogic_ui::hideLoadoutAfterTime( 3.0 );
self thread maps\mp\gametypes\_globallogic_ui::hideLoadoutOnDeath();
pixendevent("showperksonspawn");
}
pixendevent( "END: spawnPlayer_postUTS" );
waittillframeend;
self notify( "spawned_player" );
self maps\mp\gametypes\_gametype_variants::onPlayerSpawn();
self logstring( "S " + self.origin[0] + " " + self.origin[1] + " " + self.origin[2] );
setdvar( "scr_selecting_location", "" );
self thread maps\mp\gametypes\_hardpoints::killstreakWaiter();
//self thread maps\mp\_artillery::artilleryWaiter();
self thread maps\mp\_mortar::mortarWaiter();
self thread maps\mp\_vehicles::vehicleDeathWaiter();
self thread maps\mp\_vehicles::turretDeathWaiter();
/#
if ( GetDvarInt( #"scr_xprate" ) > 0 )
self thread maps\mp\gametypes\_globallogic_score::xpRateThread();
#/
//self thread maps\mp\gametypes\_globallogic_utils::testHPs();
//self thread maps\mp\gametypes\_globallogic_utils::testShock();
//self thread maps\mp\gametypes\_globallogic_utils::testMenu();
if ( game["state"] == "postgame" )
{
assert( !level.intermission );
// We're in the victory screen, but before intermission
self maps\mp\gametypes\_globallogic_player::freezePlayerForRoundEnd();
}
}
spawnSpectator( origin, angles )
{
self notify("spawned");
self notify("end_respawn");
in_spawnSpectator( origin, angles );
}
// spawnSpectator clone without notifies for spawning between respawn delays
respawn_asSpectator( origin, angles )
{
in_spawnSpectator( origin, angles );
}
// spawnSpectator helper
in_spawnSpectator( origin, angles )
{
pixmarker("BEGIN: in_spawnSpectator");
self setSpawnVariables();
// don't clear lower message if not actually a spectator,
// because it probably has important information like when we'll spawn
if ( self.pers["team"] == "spectator" )
self clearLowerMessage();
self.sessionstate = "spectator";
self.spectatorclient = -1;
self.killcamentity = -1;
self.archivetime = 0;
self.psoffsettime = 0;
self.friendlydamage = undefined;
if(self.pers["team"] == "spectator")
self.statusicon = "";
else
self.statusicon = "hud_status_dead";
maps\mp\gametypes\_spectating::setSpectatePermissionsForMachine();
[[level.onSpawnSpectator]]( origin, angles );
if ( level.teamBased && !level.splitscreen )
self thread spectatorThirdPersonness();
level thread maps\mp\gametypes\_globallogic::updateTeamStatus();
pixmarker("END: in_spawnSpectator");
}
spectatorThirdPersonness()
{
self endon("disconnect");
self endon("spawned");
self notify("spectator_thirdperson_thread");
self endon("spectator_thirdperson_thread");
self.spectatingThirdPerson = false;
// if( level.console )
// self setThirdPerson( true );
// we can reenable this if we ever get a way to determine who a player is spectating.
// self.spectatorClient is write-only so it doesn't work.
/*
player = getPlayerFromClientNum( self.spectatorClient );
prevClientNum = self.spectatorClient;
prevWeap = "none";
hasScope = false;
while(1)
{
if ( self.spectatorClient != prevClientNum )
{
player = getPlayerFromClientNum( self.spectatorClient );
prevClientNum = self.specatorClient;
}
if ( isDefined( player ) )
{
weap = player getCurrentWeapon();
if ( weap != prevWeap )
{
hasScope = maps\mp\gametypes\_weapons::hasScope( weap );
prevWeap = weap;
}
if ( hasScope && player playerADS() == 1 )
self setThirdPerson( false );
else
self setThirdPerson( true );
}
else
{
self setThirdPerson( false );
}
wait .05;
}
*/
}
getPlayerFromClientNum( clientNum )
{
if ( clientNum < 0 )
return undefined;
for ( i = 0; i < level.players.size; i++ )
{
if ( level.players[i] getEntityNumber() == clientNum )
return level.players[i];
}
return undefined;
}
forceSpawn()
{
self endon ( "death" );
self endon ( "disconnect" );
self endon ( "spawned" );
wait ( 60.0 );
if ( self.hasSpawned )
return;
if ( self.pers["team"] == "spectator" )
return;
if ( !maps\mp\gametypes\_globallogic_utils::isValidClass( self.pers["class"] ) )
{
// AE 10-15-09: I don't think we need to check for onlineGame anymore, now that we can select custom classes in any game
//if ( GetDvarInt( #"onlinegame" ) )
self.pers["class"] = "CLASS_CUSTOM1";
//else
//self.pers["class"] = "CLASS_ASSAULT";
self.class = self.pers["class"];
}
self maps\mp\gametypes\_globallogic_ui::closeMenus();
self thread [[level.spawnClient]]();
}
kickIfDontSpawn()
{
if ( self IsHost() )
{
// don't try to kick the host
return;
}
self kickIfIDontSpawnInternal();
// clear any client dvars here,
// like if we set anything to change the menu appearance to warn them of kickness
}
kickIfIDontSpawnInternal()
{
self endon ( "death" );
self endon ( "disconnect" );
self endon ( "spawned" );
waittime = 90;
if ( GetDvar( #"scr_kick_time") != "" )
waittime = GetDvarFloat( #"scr_kick_time");
mintime = 45;
if ( GetDvar( #"scr_kick_mintime") != "" )
mintime = GetDvarFloat( #"scr_kick_mintime");
starttime = gettime();
kickWait( waittime );
timePassed = (gettime() - starttime)/1000;
if ( timePassed < waittime - .1 && timePassed < mintime )
return;
if ( self.hasSpawned )
return;
if ( self.pers["team"] == "spectator" )
return;
kick( self getEntityNumber() );
}
kickWait( waittime )
{
level endon("game_ended");
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( waittime );
}
spawnInterRoundIntermission()
{
if( self isdemoclient() )
return;
self notify("spawned");
self notify("end_respawn");
self setSpawnVariables();
self clearLowerMessage();
self freeze_player_controls( false );
self.sessionstate = "spectator";
self.spectatorclient = -1;
self.killcamentity = -1;
self.archivetime = 0;
self.psoffsettime = 0;
self.friendlydamage = undefined;
self maps\mp\gametypes\_globallogic_defaults::default_onSpawnIntermission();
self SetOrigin( self.origin );
self SetPlayerAngles( self.angles );
self setDepthOfField( 0, 128, 512, 4000, 6, 1.8 );
}
spawnIntermission()
{
if( self isdemoclient() )
return;
self notify("spawned");
self notify("end_respawn");
self setSpawnVariables();
self clearLowerMessage();
self freeze_player_controls( false );
if ( level.rankedmatch && wasLastRound() )
{
self maps\mp\_popups::displayEndGamePopUps();
if (( self.postGameMilestones || self.postGameContracts || self.postGamePromotion ) )
{
if ( self.postGamePromotion )
self playLocalSound( "mus_level_up" );
else if ( self.postGameContracts )
self playLocalSound( "mus_challenge_complete" );
else if ( self.postGameMilestones )
self playLocalSound( "mus_contract_complete" );
self clearPopups();
self closeInGameMenu();
self openMenu( game["menu_endgameupdate"] );
waitTime = 4.0;
while ( waitTime )
{
wait ( 0.25 );
waitTime -= 0.25;
self openMenu( game["menu_endgameupdate"] );
}
self closeMenu( game["menu_endgameupdate"] );
}
}
self.sessionstate = "intermission";
self.spectatorclient = -1;
self.killcamentity = -1;
self.archivetime = 0;
self.psoffsettime = 0;
self.friendlydamage = undefined;
if( !isPregame() && ( level.wagermatch || level.rankedmatch ) && wasLastRound() )
{
// aar popup for game summary
if( self getdstat( "AfterActionReportStats", "valid" ) )
{
self openMenu( game["menu_eog_unlock"] );
}
}
[[level.onSpawnIntermission]]();
self setDepthOfField( 0, 128, 512, 4000, 6, 1.8 );
}
spawnClient( timeAlreadyPassed )
{
pixbeginevent("spawnClient");
assert( isDefined( self.team ) );
assert( maps\mp\gametypes\_globallogic_utils::isValidClass( self.class ) );
if ( !self maySpawn() )
{
currentorigin = self.origin;
currentangles = self.angles;
shouldShowRespawnMessage = true;
if ( wasLastRound() || isOneRound() || ( isDefined( level.livesDoNotReset ) && level.livesDoNotReset ) )
shouldShowRespawnMessage = false;
if ( level.scoreLimit > 1 && level.teambased && game["teamScores"]["allies"] >= level.scoreLimit - 1 && game["teamScores"]["axis"] >= level.scoreLimit - 1 )
shouldShowRespawnMessage = false;
if ( shouldShowRespawnMessage )
{
setLowerMessage( game["strings"]["spawn_next_round"] );
self thread maps\mp\gametypes\_globallogic_ui::removeSpawnMessageShortly( 3 );
}
self thread [[level.spawnSpectator]]( currentorigin + (0, 0, 60), currentangles );
pixendevent();
return;
}
if ( self.waitingToSpawn )
{
pixendevent();
return;
}
self.waitingToSpawn = true;
self waitAndSpawnClient( timeAlreadyPassed );
if ( isdefined( self ) )
self.waitingToSpawn = false;
pixendevent();
}
waitAndSpawnClient( timeAlreadyPassed )
{
self endon ( "disconnect" );
self endon ( "end_respawn" );
level endon ( "game_ended" );
if ( !isdefined( timeAlreadyPassed ) )
timeAlreadyPassed = 0;
spawnedAsSpectator = false;
if ( self.teamKillPunish )
{
teamKillDelay = maps\mp\gametypes\_globallogic_player::TeamKillDelay();
if ( teamKillDelay > timeAlreadyPassed )
{
teamKillDelay -= timeAlreadyPassed;
timeAlreadyPassed = 0;
}
else
{
timeAlreadyPassed -= teamKillDelay;
teamKillDelay = 0;
}
if ( teamKillDelay > 0 )
{
setLowerMessage( &"MP_FRIENDLY_FIRE_WILL_NOT", teamKillDelay );
self thread respawn_asSpectator( self.origin + (0, 0, 60), self.angles );
spawnedAsSpectator = true;
wait( teamKillDelay );
}
self.teamKillPunish = false;
}
if ( !isdefined( self.waveSpawnIndex ) && isdefined( level.wavePlayerSpawnIndex[self.team] ) )
{
self.waveSpawnIndex = level.wavePlayerSpawnIndex[self.team];
level.wavePlayerSpawnIndex[self.team]++;
}
timeUntilSpawn = TimeUntilSpawn( false );
if ( timeUntilSpawn > timeAlreadyPassed )
{
timeUntilSpawn -= timeAlreadyPassed;
timeAlreadyPassed = 0;
}
else
{
timeAlreadyPassed -= timeUntilSpawn;
timeUntilSpawn = 0;
}
if ( timeUntilSpawn > 0 )
{
// spawn player into spectator on death during respawn delay, if he switches teams during this time, he will respawn next round
if ( self IsSplitscreen() )
setLowerMessage( game["strings"]["waiting_to_spawn_ss"], timeUntilSpawn, true );
else
setLowerMessage( game["strings"]["waiting_to_spawn"], timeUntilSpawn );
//showSafeSpawnMessage();
//thread waitSafeSpawnButton();
if ( !spawnedAsSpectator )
self thread respawn_asSpectator( self.origin + (0, 0, 60), self.angles );
spawnedAsSpectator = true;
self maps\mp\gametypes\_globallogic_utils::waitForTimeOrNotify( timeUntilSpawn, "force_spawn" );
self notify("stop_wait_safe_spawn_button");
}
waveBased = (GetDvarInt( "scr_" + level.gameType + "_waverespawndelay" ) > 0);
if ( maps\mp\gametypes\_tweakables::getTweakableValue( "player", "forcerespawn" ) == 0 && self.hasSpawned && !waveBased && !self.wantSafeSpawn )
{
setLowerMessage( game["strings"]["press_to_spawn"] );
//showSafeSpawnMessage();
if ( !spawnedAsSpectator )
self thread respawn_asSpectator( self.origin + (0, 0, 60), self.angles );
spawnedAsSpectator = true;
self waitRespawnOrSafeSpawnButton();
}
//hideSafeSpawnMessage();
/*
if ( self.wantSafeSpawn )
{
setLowerMessage( game["strings"]["waiting_to_safespawn"] );
timeToWait = randomfloatrange( 7.0, 12.0 );
if ( randomint( 10 ) == 0 )
timeToWait = randomfloatrange( 2.0, 7.0 );
if ( !spawnedAsSpectator )
self thread respawn_asSpectator( self.origin + (0, 0, 60), self.angles );
spawnedAsSpectator = true;
/# println( "Safe spawn time: " + timeToWait ); #/
self maps\mp\gametypes\_globallogic_utils::waitForTimeOrNotifyNoAirstrikes( timeToWait, "force_spawn" );
if ( level.inOvertime )
return;
}
*/
self.waitingToSpawn = false;
self clearLowerMessage();
self.waveSpawnIndex = undefined;
// self thread maps\mp\gametypes\_globallogic_utils::rumbler();
self thread [[level.spawnPlayer]]();
}
/*waitSafeSpawnButton()
{
self endon ( "disconnect" );
self endon ( "end_respawn" );
self endon ( "game_ended" );
self endon ( "stop_wait_safe_spawn_button" );
while(1)
{
if ( self fragButtonPressed() )
break;
wait .05;
}
self.wantSafeSpawn = true;
hideSafeSpawnMessage();
}*/
waitRespawnOrSafeSpawnButton()
{
self endon("disconnect");
self endon("end_respawn");
while (1)
{
if ( self useButtonPressed() )
break;
/*if ( self fragButtonPressed() )
{
self.wantSafeSpawn = true;
break;
}*/
wait .05;
}
}
setThirdPerson( value )
{
if( !level.console )
return;
if ( !IsDefined( self.spectatingThirdPerson ) || value != self.spectatingThirdPerson )
{
self.spectatingThirdPerson = value;
if ( value )
{
self setClientDvar( "cg_thirdPerson", "1" );
self setDepthOfField( 0, 128, 512, 4000, 6, 1.8 );
self setClientDvar( "cg_fov", "40" );
}
else
{
self setClientDvar( "cg_thirdPerson", "0" );
self setDepthOfField( 0, 0, 512, 4000, 4, 0 );
self setClientDvar( "cg_fov", "65" );
}
}
}
setSpawnVariables()
{
resetTimeout();
// Stop shellshock and rumble
self StopShellshock();
self StopRumble( "damage_heavy" );
}
sndStartMusicSystem()
{
self endon( "disconnect" );
if ( game["state"] == "postgame" )
// if the games over do not change music state
return;
if ( game["state"] == "pregame" )
{
//if this is our first spawn, wait for the team intro to play
if( getdvarint( #"debug_music" ) > 0 )
{
println ( "Music System - music state is undefined Waiting 15 seconds to set music state" );
}
wait 20;
if ( !isdefined(level.nextMusicState) )
{
self.pers["music"].currentState = "UNDERSCORE";
self thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( "UNDERSCORE", true );
}
}
if ( !isdefined(level.nextMusicState) )
{
//println ( "current gamestate is " + game["state"] );
//set the music state to underscore
if( getdvarint( #"debug_music" ) > 0 )
{
println ( "Music System - music state is undefined Waiting 15 seconds to set music state" );
}
wait 15;
self.pers["music"].currentState = "UNDERSCORE";
self thread maps\mp\gametypes\_globallogic_audio::set_music_on_player( "UNDERSCORE", true );
}
}
No leader dialog:
_globallogic_score.gsc
Pastebin - http://pastebin.com/fiue4Hi0
(Too many characters)
A casual conversation between barata and I about Nukem.
Posts: 949
Threads: 111
Joined: Oct 2010
Reputation:
30
what is no leader dialog?
btw add me on steam so we can share stuff, I am almost done and funny how we have like almost the same shit
pyromanic5
--
Posts: 719
Threads: 69
Joined: Nov 2010
Reputation:
76
11-30-2010, 06:07
(This post was last modified: 11-30-2010, 06:07 by master131.)
It tells you which team is in the lead or plays music if you are winning or losing.
A casual conversation between barata and I about Nukem.
Posts: 2
Threads: 0
Joined: Dec 2010
Reputation:
0
(11-29-2010, 12:48)Eekhoorn Wrote: List of promod reflex features:
Sounds and music
-Leader dialog has been removed from the game.
-Music has been removed from the game.
-All maps have ambient noise removed. NOT COMPLETED.
Gameplay and Balancing
-The SMG class has been reduced in power.
-The AWP fix has been implemented.
-The nosway fix has been implemented.
-The bomb can now be dropped in S&D. NOT COMPLETED.
-Knife automelee and lunge has been removed.
Class optimization
-The Ak74u is now the default SMG.
-The AK47 is now the default Assault Rifle.
-The L96A1 is the only avaible sniper.
Visuals and FPS
-Camouflages are not enabled.
-The field of view is 90.
-All maps have aimbient particles and smoke removed. NOT COMPLETED.
-Fog has been further reduced troughout the game.
-The games desuration has been removed, resulting in more colour.
-Walls now contain less detail, improving FPS and visibility NOT COMPLETED.
-Player 'bob' has been removed when sprinting, e.g
-Dynamic lighting has been disabled NOT COMPLETED
-Shadows have been disabled
Additional Improvements
-Every kill gives +5 as score NOT COMPLETED
-The plant/defuse bar has been more accurate, by removing the bomb.
-Attack and Defence have replaced, Spetznatz, BlackOps, etc NOT COMPLETED.
-Every round has a strattime of 6 seconds.
-A timer has been added for strattime NOT COMPLETED
Guide
-Suicide PRESS ?? NOT COMPLETED
-Bombdrop PRESS ?? NOT COMPLETED
where do i type this in?
I would be really happy if u could answer
Posts: 719
Threads: 69
Joined: Nov 2010
Reputation:
76
(12-10-2010, 22:52)Martini Wrote: where do i type this in?
I would be really happy if u could answer
Oh my gawd..
A casual conversation between barata and I about Nukem.
Posts: 211
Threads: 14
Joined: Nov 2010
Reputation:
0
well rowan.... ur Pro mod is so unfinished.....
maybe u should play it ones ![Wink Wink](https://www.itsmods.com/forum/images/smilies/wink.gif) just a TIP =D
if you dig true the world... what comes up first your feet or your head ;qq
Posts: 2
Threads: 0
Joined: Dec 2010
Reputation:
0
(12-10-2010, 23:08)master131 Wrote: (12-10-2010, 22:52)Martini Wrote: where do i type this in?
I would be really happy if u could answer
Oh my gawd.. ![Dodgy Dodgy](https://www.itsmods.com/forum/images/smilies/dodgy.gif)
I'm pretty new to modding, do i put it into the config_mp?
Posts: 1
Threads: 0
Joined: Dec 2010
Reputation:
0
So on the current version of the cmMod out(beta), a person on our team donated, received the mod from you(eekhoorn), in the readme, it's very vague about being able to be PUT on a server. Not just a private game. My question is, at this time, is the mod able to be installed on a gameservers.com server? Or is this meant strictly for private use with private matches?
Posts: 3,598
Threads: 265
Joined: Oct 2010
Reputation:
76
Private match only.
In the readme it clearly states you need to click on Private Match in the main menu (after downloading the game settings from the fileshare)
|