initial commit of call of duty game mods
|
@ -0,0 +1,508 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind2 SPACE "+switchseat"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "togglecrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+actionslot 1"
|
||||
bind G "+frag"
|
||||
bind2 G "+vehicleattacksecond"
|
||||
bind I "chatmodepublic"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind2 S "+reverse"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind2 W "+gas"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "toggleprone"
|
||||
bind2 CTRL "+handbrake"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind F3 "toggleview"
|
||||
bind F10 "acceptinvitation"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind2 MOUSE1 "+vehicleattack"
|
||||
bind MOUSE2 "+toggleads_throw"
|
||||
bind MWHEELDOWN "+attack"
|
||||
bind2 MWHEELDOWN "+vehiclemovedown"
|
||||
bind2 MWHEELUP "+vehiclemoveup"
|
||||
unbindallaxis
|
||||
seta acousticSpikeMaxRange "200"
|
||||
seta acousticSpikeMinRadius "0.0001"
|
||||
seta acousticSpikeMinRange "0"
|
||||
seta acousticSpikeRingSize "20"
|
||||
seta acousticSpikeSize "10"
|
||||
seta ai_corpseCount "5"
|
||||
seta bot_difficulty "normal"
|
||||
seta bot_tips "1"
|
||||
seta cg_adsZoomToggleStyle "1"
|
||||
seta cg_adsZScaleMax "1.25"
|
||||
|
||||
seta cg_blood "0"
|
||||
seta cg_brass "0"
|
||||
|
||||
seta cg_chatHeight "5"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "5"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
|
||||
seta cg_drawFPS "Simple"
|
||||
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawFPSOnly "0"
|
||||
seta cg_drawFPSScale "0"
|
||||
seta cg_drawHoldBreathHint "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawSnapshotTime "1"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_flareVisionSetFadeDuration "2000"
|
||||
seta cg_fov_default "65"
|
||||
seta cg_fov_default_thirdperson "40"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.025"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 90"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageDirectionalIconTime "1000"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_mapLocationSelectionRotationSpeed "3"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_mature "1"
|
||||
seta cg_MaxDownedPulseRate "4"
|
||||
seta cg_MinDownedPulseRate "1"
|
||||
seta cg_motionblur_duration "2500"
|
||||
seta cg_motionblur_fadeout "500"
|
||||
seta cg_overheadIconSize "0.7"
|
||||
seta cg_overheadNamesFont "2"
|
||||
seta cg_overheadNamesSize "0.5"
|
||||
seta cg_overheadRankSize "0.5"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "5"
|
||||
seta cg_seatHintFadeTime "2000"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_thirdPersonAngle "354"
|
||||
seta cg_thirdPersonMode "Fixed"
|
||||
seta cg_thirdPersonRange "120"
|
||||
seta cg_timedDamageDuration "500"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_visionSetLerpMaxDecreasePerFrame "0.01"
|
||||
seta cg_visionSetLerpMaxIncreasePerFrame "0.02"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "11"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_freelook "1"
|
||||
|
||||
seta cl_maxpackets "100"
|
||||
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta clanName ""
|
||||
seta com_first_time_pc "1"
|
||||
|
||||
seta com_maxfps "100"
|
||||
|
||||
seta com_recommendedSet "1"
|
||||
seta com_startupIntroPlayed "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassLocalRadarRadius "700"
|
||||
seta compassLocalRadarUpdateTime "2.25"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "18"
|
||||
seta compassObjectiveIconHeightZombie "16"
|
||||
seta compassObjectiveIconWidth "18"
|
||||
seta compassObjectiveIconWidthZombie "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPartialType "0"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateFastTime "2"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSatellitePingFadeTime "10"
|
||||
seta compassSatelliteScanTime "1000"
|
||||
seta compassSatelliteStaticImageFadeTime "0"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassStaticImageUpdateTime "5000"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "1"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "1000"
|
||||
seta con_typewriterDecayStartTime "4000"
|
||||
seta con_typewriterEnabledSounds "0"
|
||||
seta con_typewriterPrintSpeed "40"
|
||||
seta customclass1 "CUSTOM 1"
|
||||
seta customclass2 "CUSTOM 2"
|
||||
seta customclass3 "CUSTOM 3"
|
||||
seta customclass4 "CUSTOM 4"
|
||||
seta customclass5 "CUSTOM 5"
|
||||
seta drawLagometer "0"
|
||||
seta drew_notes "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "0"
|
||||
seta gpad_buttonsConfig "buttons_default"
|
||||
seta gpad_enabled "0"
|
||||
seta gpad_menu_scroll_delay_first "420"
|
||||
seta gpad_menu_scroll_delay_rest "210"
|
||||
seta gpad_rumble "1"
|
||||
seta gpad_sticksConfig "thumbstick_default"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fade_vehiclecontrols "4"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta input_invertPitch "0"
|
||||
seta input_viewSensitivity "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta log_append "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "$('*').addclass"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta playlist_excludeGametype ""
|
||||
seta playlist_excludeGametypeMap ""
|
||||
seta playlist_excludeMap ""
|
||||
seta prestigeclass1 "CUSTOM 6"
|
||||
seta prestigeclass2 "CUSTOM 7"
|
||||
seta prestigeclass3 "CUSTOM 8"
|
||||
seta prestigeclass4 "CUSTOM 9"
|
||||
seta prestigeclass5 "CUSTOM 10"
|
||||
seta profile_physics "0"
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_allow_intz "1"
|
||||
seta r_allow_null_rt "1"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_backBufferSize "960"
|
||||
seta r_backBufferSizeY "544"
|
||||
|
||||
seta r_blur_allowed "0"
|
||||
|
||||
seta r_clipCodec "MJPEG"
|
||||
seta r_clipFPS "24"
|
||||
seta r_clipSize "360"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
|
||||
seta r_distortion "0"
|
||||
seta r_dof_enable "0"
|
||||
|
||||
seta r_fastSkin "0"
|
||||
seta r_filmLut "-1"
|
||||
seta r_flame_allowed "1"
|
||||
seta r_flameFX_distortionScaleFactor "0 1 1 0.511918"
|
||||
seta r_flameFX_enable "0"
|
||||
seta r_flameFX_fadeDuration "0.5"
|
||||
seta r_flameFX_FPS "15"
|
||||
seta r_flameFX_magnitude "0.0215147"
|
||||
seta r_fovScaleThresholdRigid "2.4"
|
||||
seta r_fovScaleThresholdSkinned "2.4"
|
||||
|
||||
seta r_fullscreen "1"
|
||||
|
||||
seta r_gamma "1"
|
||||
seta r_gfxopt_dynamic_foliage "1"
|
||||
seta r_gfxopt_water_simulation "1"
|
||||
|
||||
seta r_glow_allowed "0"
|
||||
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "800x600"
|
||||
seta r_monitor "0"
|
||||
seta r_motionblur_directionFactor "0.001"
|
||||
seta r_motionblur_enable "0"
|
||||
seta r_motionblur_frameBased_enable "0"
|
||||
seta r_motionblur_maxblur "30"
|
||||
seta r_motionblur_numberOfSamples "1"
|
||||
seta r_motionblur_positionFactor "0.01"
|
||||
|
||||
seta r_multiGpu "0"
|
||||
seta r_multithreaded_device "1"
|
||||
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "1"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_reviveFX_debug "0"
|
||||
seta r_reviveFX_fadeDuration "5"
|
||||
seta r_shaderWarming "0"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "16"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_use_driver_convergence "0"
|
||||
|
||||
seta r_vsync "0"
|
||||
|
||||
seta r_waterSheetingFX_allowed "1"
|
||||
seta r_waterSheetingFX_distortionScaleFactor "0.021961 1 0 0"
|
||||
seta r_waterSheetingFX_enable "0"
|
||||
seta r_waterSheetingFX_fadeDuration "2"
|
||||
seta r_waterSheetingFX_magnitude "0.0655388"
|
||||
seta r_waterSheetingFX_radius "4.44051"
|
||||
seta r_zfeather "1"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
|
||||
seta rate "3000"
|
||||
|
||||
seta scr_bot_difficulty ""
|
||||
seta sd_xa2_device_guid "{9b8bcb8e-52de-4029-a432-98d69fe8fce7}"
|
||||
seta sensitivity "15.5"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_enableEq "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_losOcclusion "1"
|
||||
seta snd_menu_center_channel "1"
|
||||
seta snd_menu_cinematic "1"
|
||||
seta snd_menu_left_channel "1"
|
||||
seta snd_menu_left_surround "1"
|
||||
seta snd_menu_lfe "1"
|
||||
seta snd_menu_listen_level "0"
|
||||
seta snd_menu_master "1"
|
||||
seta snd_menu_music "1"
|
||||
seta snd_menu_right_channel "1"
|
||||
seta snd_menu_right_surround "1"
|
||||
seta snd_menu_sfx "1"
|
||||
seta snd_menu_speaker_setup "0"
|
||||
seta snd_menu_voice "1"
|
||||
seta snd_speakerConfiguration "Stereo"
|
||||
seta stats_backup "1"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "BlackOpsPrivate"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_vac "1"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "160007939"
|
||||
seta sys_configureGHz "0.0849072"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta team_indicator "0"
|
||||
seta ui_allowFov "0"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserGameMode "0"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMap "All"
|
||||
seta ui_browserMod "-2"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "1"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "0"
|
||||
seta ui_browserVoiceChat "-1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_mapCount "14"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_serverBrowserMenu "server_browser_ranked"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
seta xblive_basictraining_popup "0"
|
||||
seta zombiefive_discovered "0"
|
||||
seta zombietron_discovered "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards live parserscript script mpspawnsystem coopinfo serverdemo ddl network scheduler task spu
|
|
@ -0,0 +1,506 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind2 SPACE "+switchseat"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "togglecrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+actionslot 1"
|
||||
bind G "+frag"
|
||||
bind2 G "+vehicleattacksecond"
|
||||
bind I "chatmodepublic"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind2 S "+reverse"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind2 W "+gas"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "toggleprone"
|
||||
bind2 CTRL "+handbrake"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind F3 "toggleview"
|
||||
bind F10 "acceptinvitation"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind2 MOUSE1 "+vehicleattack"
|
||||
bind MOUSE2 "+toggleads_throw"
|
||||
bind MWHEELDOWN "+attack"
|
||||
bind2 MWHEELDOWN "+vehiclemovedown"
|
||||
bind2 MWHEELUP "+vehiclemoveup"
|
||||
unbindallaxis
|
||||
seta acousticSpikeMaxRange "200"
|
||||
seta acousticSpikeMinRadius "0.0001"
|
||||
seta acousticSpikeMinRange "0"
|
||||
seta acousticSpikeRingSize "20"
|
||||
seta acousticSpikeSize "10"
|
||||
seta ai_corpseCount "5"
|
||||
seta bot_difficulty "normal"
|
||||
seta bot_tips "1"
|
||||
seta cg_adsZoomToggleStyle "1"
|
||||
seta cg_adsZScaleMax "1.25"
|
||||
|
||||
seta cg_blood "0"
|
||||
seta cg_brass "0"
|
||||
|
||||
seta cg_chatHeight "5"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "5"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
|
||||
seta cg_drawFPS "Simple"
|
||||
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawFPSOnly "0"
|
||||
seta cg_drawFPSScale "0"
|
||||
seta cg_drawHoldBreathHint "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawSnapshotTime "1"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_flareVisionSetFadeDuration "2000"
|
||||
seta cg_fov_default "65"
|
||||
seta cg_fov_default_thirdperson "40"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.025"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 90"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageDirectionalIconTime "1000"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_mapLocationSelectionRotationSpeed "3"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_mature "1"
|
||||
seta cg_MaxDownedPulseRate "4"
|
||||
seta cg_MinDownedPulseRate "1"
|
||||
seta cg_motionblur_duration "2500"
|
||||
seta cg_motionblur_fadeout "500"
|
||||
seta cg_overheadIconSize "0.7"
|
||||
seta cg_overheadNamesFont "2"
|
||||
seta cg_overheadNamesSize "0.5"
|
||||
seta cg_overheadRankSize "0.5"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "5"
|
||||
seta cg_seatHintFadeTime "2000"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_thirdPersonAngle "354"
|
||||
seta cg_thirdPersonMode "Fixed"
|
||||
seta cg_thirdPersonRange "120"
|
||||
seta cg_timedDamageDuration "500"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_visionSetLerpMaxDecreasePerFrame "0.01"
|
||||
seta cg_visionSetLerpMaxIncreasePerFrame "0.02"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "11"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_freelook "1"
|
||||
|
||||
seta cl_maxpackets "100"
|
||||
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta clanName ""
|
||||
seta com_first_time_pc "1"
|
||||
|
||||
seta com_maxfps "100"
|
||||
|
||||
seta com_recommendedSet "1"
|
||||
seta com_startupIntroPlayed "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassLocalRadarRadius "700"
|
||||
seta compassLocalRadarUpdateTime "2.25"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "18"
|
||||
seta compassObjectiveIconHeightZombie "16"
|
||||
seta compassObjectiveIconWidth "18"
|
||||
seta compassObjectiveIconWidthZombie "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPartialType "0"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateFastTime "2"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSatellitePingFadeTime "10"
|
||||
seta compassSatelliteScanTime "1000"
|
||||
seta compassSatelliteStaticImageFadeTime "0"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassStaticImageUpdateTime "5000"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "1"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "1000"
|
||||
seta con_typewriterDecayStartTime "4000"
|
||||
seta con_typewriterEnabledSounds "0"
|
||||
seta con_typewriterPrintSpeed "40"
|
||||
seta customclass1 "CUSTOM 1"
|
||||
seta customclass2 "CUSTOM 2"
|
||||
seta customclass3 "CUSTOM 3"
|
||||
seta customclass4 "CUSTOM 4"
|
||||
seta customclass5 "CUSTOM 5"
|
||||
seta drawLagometer "0"
|
||||
seta drew_notes "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "0"
|
||||
seta gpad_buttonsConfig "buttons_default"
|
||||
seta gpad_enabled "0"
|
||||
seta gpad_menu_scroll_delay_first "420"
|
||||
seta gpad_menu_scroll_delay_rest "210"
|
||||
seta gpad_rumble "1"
|
||||
seta gpad_sticksConfig "thumbstick_default"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fade_vehiclecontrols "4"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta input_invertPitch "0"
|
||||
seta input_viewSensitivity "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta log_append "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "$('*').addclass"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta playlist_excludeGametype ""
|
||||
seta playlist_excludeGametypeMap ""
|
||||
seta playlist_excludeMap ""
|
||||
seta prestigeclass1 "CUSTOM 6"
|
||||
seta prestigeclass2 "CUSTOM 7"
|
||||
seta prestigeclass3 "CUSTOM 8"
|
||||
seta prestigeclass4 "CUSTOM 9"
|
||||
seta prestigeclass5 "CUSTOM 10"
|
||||
seta profile_physics "0"
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_allow_intz "1"
|
||||
seta r_allow_null_rt "1"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_backBufferSize "960"
|
||||
seta r_backBufferSizeY "544"
|
||||
|
||||
seta r_blur_allowed "0"
|
||||
|
||||
seta r_clipCodec "MJPEG"
|
||||
seta r_clipFPS "24"
|
||||
seta r_clipSize "360"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
|
||||
seta r_distortion "0"
|
||||
seta r_dof_enable "0"
|
||||
|
||||
seta r_fastSkin "0"
|
||||
seta r_filmLut "-1"
|
||||
seta r_flame_allowed "1"
|
||||
seta r_flameFX_distortionScaleFactor "0 1 1 0.511918"
|
||||
seta r_flameFX_enable "0"
|
||||
seta r_flameFX_fadeDuration "0.5"
|
||||
seta r_flameFX_FPS "15"
|
||||
seta r_flameFX_magnitude "0.0215147"
|
||||
seta r_fovScaleThresholdRigid "2.4"
|
||||
seta r_fovScaleThresholdSkinned "2.4"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1"
|
||||
seta r_gfxopt_dynamic_foliage "1"
|
||||
seta r_gfxopt_water_simulation "1"
|
||||
|
||||
seta r_glow_allowed "0"
|
||||
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "800x600"
|
||||
seta r_monitor "0"
|
||||
seta r_motionblur_directionFactor "0.001"
|
||||
seta r_motionblur_enable "0"
|
||||
seta r_motionblur_frameBased_enable "0"
|
||||
seta r_motionblur_maxblur "30"
|
||||
seta r_motionblur_numberOfSamples "1"
|
||||
seta r_motionblur_positionFactor "0.01"
|
||||
|
||||
seta r_multiGpu "0"
|
||||
seta r_multithreaded_device "1"
|
||||
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "1"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_reviveFX_debug "0"
|
||||
seta r_reviveFX_fadeDuration "5"
|
||||
seta r_shaderWarming "0"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "16"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_use_driver_convergence "0"
|
||||
|
||||
seta r_vsync "0"
|
||||
|
||||
seta r_waterSheetingFX_allowed "1"
|
||||
seta r_waterSheetingFX_distortionScaleFactor "0.021961 1 0 0"
|
||||
seta r_waterSheetingFX_enable "0"
|
||||
seta r_waterSheetingFX_fadeDuration "2"
|
||||
seta r_waterSheetingFX_magnitude "0.0655388"
|
||||
seta r_waterSheetingFX_radius "4.44051"
|
||||
seta r_zfeather "1"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
|
||||
seta rate "3000"
|
||||
|
||||
seta scr_bot_difficulty ""
|
||||
seta sd_xa2_device_guid "{9b8bcb8e-52de-4029-a432-98d69fe8fce7}"
|
||||
seta sensitivity "15.5"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_enableEq "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_losOcclusion "1"
|
||||
seta snd_menu_center_channel "1"
|
||||
seta snd_menu_cinematic "1"
|
||||
seta snd_menu_left_channel "1"
|
||||
seta snd_menu_left_surround "1"
|
||||
seta snd_menu_lfe "1"
|
||||
seta snd_menu_listen_level "0"
|
||||
seta snd_menu_master "1"
|
||||
seta snd_menu_music "1"
|
||||
seta snd_menu_right_channel "1"
|
||||
seta snd_menu_right_surround "1"
|
||||
seta snd_menu_sfx "1"
|
||||
seta snd_menu_speaker_setup "0"
|
||||
seta snd_menu_voice "1"
|
||||
seta snd_speakerConfiguration "Stereo"
|
||||
seta stats_backup "1"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "BlackOpsPrivate"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_vac "1"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "160007939"
|
||||
seta sys_configureGHz "0.0849072"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta team_indicator "0"
|
||||
seta ui_allowFov "0"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserGameMode "0"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMap "All"
|
||||
seta ui_browserMod "-2"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "1"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "0"
|
||||
seta ui_browserVoiceChat "-1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_mapCount "14"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_serverBrowserMenu "server_browser_ranked"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
seta xblive_basictraining_popup "0"
|
||||
seta zombiefive_discovered "0"
|
||||
seta zombietron_discovered "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards live parserscript script mpspawnsystem coopinfo serverdemo ddl network scheduler task spu
|
|
@ -0,0 +1,486 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind2 SPACE "+switchseat"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "togglecrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+actionslot 1"
|
||||
bind G "+frag"
|
||||
bind2 G "+vehicleattacksecond"
|
||||
bind I "chatmodepublic"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind2 S "+reverse"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind2 W "+gas"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "toggleprone"
|
||||
bind2 CTRL "+handbrake"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind F3 "toggleview"
|
||||
bind F10 "acceptinvitation"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind2 MOUSE1 "+vehicleattack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MWHEELDOWN "+attack"
|
||||
bind2 MWHEELDOWN "+vehiclemovedown"
|
||||
bind2 MWHEELUP "+vehiclemoveup"
|
||||
unbindallaxis
|
||||
seta acousticSpikeMaxRange "200"
|
||||
seta acousticSpikeMinRadius "0.0001"
|
||||
seta acousticSpikeMinRange "0"
|
||||
seta acousticSpikeRingSize "20"
|
||||
seta acousticSpikeSize "10"
|
||||
seta ai_corpseCount "5"
|
||||
seta bot_difficulty "normal"
|
||||
seta bot_tips "1"
|
||||
seta cg_adsZoomToggleStyle "1"
|
||||
seta cg_adsZScaleMax "1.25"
|
||||
seta cg_blood "0"
|
||||
seta cg_brass "0"
|
||||
seta cg_chatHeight "5"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "5"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Simple"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawFPSOnly "0"
|
||||
seta cg_drawFPSScale "0"
|
||||
seta cg_drawHoldBreathHint "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawSnapshotTime "1"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_flareVisionSetFadeDuration "2000"
|
||||
seta cg_fov_default "65"
|
||||
seta cg_fov_default_thirdperson "40"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.025"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 90"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageDirectionalIconTime "1000"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_mapLocationSelectionRotationSpeed "3"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_mature "1"
|
||||
seta cg_MaxDownedPulseRate "4"
|
||||
seta cg_MinDownedPulseRate "1"
|
||||
seta cg_motionblur_duration "2500"
|
||||
seta cg_motionblur_fadeout "500"
|
||||
seta cg_overheadIconSize "0.7"
|
||||
seta cg_overheadNamesFont "2"
|
||||
seta cg_overheadNamesSize "0.5"
|
||||
seta cg_overheadRankSize "0.5"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "5"
|
||||
seta cg_seatHintFadeTime "2000"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_thirdPersonAngle "354"
|
||||
seta cg_thirdPersonMode "Fixed"
|
||||
seta cg_thirdPersonRange "120"
|
||||
seta cg_timedDamageDuration "500"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_visionSetLerpMaxDecreasePerFrame "0.01"
|
||||
seta cg_visionSetLerpMaxIncreasePerFrame "0.02"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "11"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "100"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_voice "0"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta clanName ""
|
||||
seta com_first_time_pc "1"
|
||||
seta com_maxfps "100"
|
||||
seta com_recommendedSet "1"
|
||||
seta com_startupIntroPlayed "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassLocalRadarRadius "700"
|
||||
seta compassLocalRadarUpdateTime "2.25"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "18"
|
||||
seta compassObjectiveIconHeightZombie "16"
|
||||
seta compassObjectiveIconWidth "18"
|
||||
seta compassObjectiveIconWidthZombie "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPartialType "0"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateFastTime "2"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSatellitePingFadeTime "10"
|
||||
seta compassSatelliteScanTime "1000"
|
||||
seta compassSatelliteStaticImageFadeTime "0"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassStaticImageUpdateTime "5000"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "1"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "1000"
|
||||
seta con_typewriterDecayStartTime "4000"
|
||||
seta con_typewriterEnabledSounds "0"
|
||||
seta con_typewriterPrintSpeed "40"
|
||||
seta customclass1 "CUSTOM 1"
|
||||
seta customclass2 "CUSTOM 2"
|
||||
seta customclass3 "CUSTOM 3"
|
||||
seta customclass4 "CUSTOM 4"
|
||||
seta customclass5 "CUSTOM 5"
|
||||
seta drawLagometer "0"
|
||||
seta drew_notes "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "0"
|
||||
seta gpad_buttonsConfig "buttons_default"
|
||||
seta gpad_enabled "0"
|
||||
seta gpad_menu_scroll_delay_first "420"
|
||||
seta gpad_menu_scroll_delay_rest "210"
|
||||
seta gpad_rumble "1"
|
||||
seta gpad_sticksConfig "thumbstick_default"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fade_vehiclecontrols "4"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta input_invertPitch "0"
|
||||
seta input_viewSensitivity "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta log_append "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "$('*').addclass"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta playlist_excludeGametype ""
|
||||
seta playlist_excludeGametypeMap ""
|
||||
seta playlist_excludeMap ""
|
||||
seta prestigeclass1 "CUSTOM 6"
|
||||
seta prestigeclass2 "CUSTOM 7"
|
||||
seta prestigeclass3 "CUSTOM 8"
|
||||
seta prestigeclass4 "CUSTOM 9"
|
||||
seta prestigeclass5 "CUSTOM 10"
|
||||
seta profile_physics "0"
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_allow_intz "1"
|
||||
seta r_allow_null_rt "1"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_backBufferSize "960"
|
||||
seta r_backBufferSizeY "544"
|
||||
seta r_blur_allowed "0"
|
||||
seta r_clipCodec "MJPEG"
|
||||
seta r_clipFPS "24"
|
||||
seta r_clipSize "360"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_filmLut "-1"
|
||||
seta r_flame_allowed "1"
|
||||
seta r_flameFX_distortionScaleFactor "0 1 1 0.511918"
|
||||
seta r_flameFX_enable "0"
|
||||
seta r_flameFX_fadeDuration "0.5"
|
||||
seta r_flameFX_FPS "15"
|
||||
seta r_flameFX_magnitude "0.0215147"
|
||||
seta r_fovScaleThresholdRigid "2.4"
|
||||
seta r_fovScaleThresholdSkinned "2.4"
|
||||
seta r_fullscreen "0"
|
||||
seta r_gamma "1"
|
||||
seta r_gfxopt_dynamic_foliage "1"
|
||||
seta r_gfxopt_water_simulation "1"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "800x600"
|
||||
seta r_monitor "0"
|
||||
seta r_motionblur_directionFactor "0.001"
|
||||
seta r_motionblur_enable "0"
|
||||
seta r_motionblur_frameBased_enable "0"
|
||||
seta r_motionblur_maxblur "30"
|
||||
seta r_motionblur_numberOfSamples "1"
|
||||
seta r_motionblur_positionFactor "0.01"
|
||||
seta r_multiGpu "1"
|
||||
seta r_multithreaded_device "1"
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "1"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_reviveFX_debug "0"
|
||||
seta r_reviveFX_fadeDuration "5"
|
||||
seta r_shaderWarming "0"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "16"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_use_driver_convergence "0"
|
||||
seta r_vsync "0"
|
||||
seta r_waterSheetingFX_allowed "1"
|
||||
seta r_waterSheetingFX_distortionScaleFactor "0.021961 1 0 0"
|
||||
seta r_waterSheetingFX_enable "0"
|
||||
seta r_waterSheetingFX_fadeDuration "2"
|
||||
seta r_waterSheetingFX_magnitude "0.0655388"
|
||||
seta r_waterSheetingFX_radius "4.44051"
|
||||
seta r_zfeather "1"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "2000"
|
||||
seta scr_bot_difficulty ""
|
||||
seta sd_xa2_device_guid "{9b8bcb8e-52de-4029-a432-98d69fe8fce7}"
|
||||
seta sensitivity "15.5"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "30"
|
||||
seta snd_enableEq "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_losOcclusion "1"
|
||||
seta snd_menu_center_channel "1"
|
||||
seta snd_menu_cinematic "1"
|
||||
seta snd_menu_left_channel "1"
|
||||
seta snd_menu_left_surround "1"
|
||||
seta snd_menu_lfe "1"
|
||||
seta snd_menu_listen_level "0"
|
||||
seta snd_menu_master "1"
|
||||
seta snd_menu_music "1"
|
||||
seta snd_menu_right_channel "1"
|
||||
seta snd_menu_right_surround "1"
|
||||
seta snd_menu_sfx "1"
|
||||
seta snd_menu_speaker_setup "0"
|
||||
seta snd_menu_voice "1"
|
||||
seta snd_speakerConfiguration "Stereo"
|
||||
seta stats_backup "1"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "BlackOpsPrivate"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_vac "1"
|
||||
seta sv_voice "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "160007939"
|
||||
seta sys_configureGHz "0.0849072"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta team_indicator "0"
|
||||
seta ui_allowFov "0"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserGameMode "0"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMap "All"
|
||||
seta ui_browserMod "-2"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "1"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "0"
|
||||
seta ui_browserVoiceChat "-1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_mapCount "14"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_serverBrowserMenu "server_browser_favorites"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
seta xblive_basictraining_popup "0"
|
||||
seta zombiefive_discovered "0"
|
||||
seta zombietron_discovered "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards live parserscript script mpspawnsystem coopinfo serverdemo ddl network scheduler task spu
|
|
@ -0,0 +1,486 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind2 SPACE "+switchseat"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "togglecrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+actionslot 1"
|
||||
bind G "+frag"
|
||||
bind2 G "+vehicleattacksecond"
|
||||
bind I "chatmodepublic"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind2 S "+reverse"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind2 W "+gas"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "toggleprone"
|
||||
bind2 CTRL "+handbrake"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind F3 "toggleview"
|
||||
bind F10 "acceptinvitation"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind2 MOUSE1 "+vehicleattack"
|
||||
bind MOUSE2 "+toggleads_throw"
|
||||
bind MWHEELDOWN "+attack"
|
||||
bind2 MWHEELDOWN "+vehiclemovedown"
|
||||
bind2 MWHEELUP "+vehiclemoveup"
|
||||
unbindallaxis
|
||||
seta acousticSpikeMaxRange "200"
|
||||
seta acousticSpikeMinRadius "0.0001"
|
||||
seta acousticSpikeMinRange "0"
|
||||
seta acousticSpikeRingSize "20"
|
||||
seta acousticSpikeSize "10"
|
||||
seta ai_corpseCount "5"
|
||||
seta bot_difficulty "normal"
|
||||
seta bot_tips "1"
|
||||
seta cg_adsZoomToggleStyle "1"
|
||||
seta cg_adsZScaleMax "1.25"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "5"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "5"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Simple"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawFPSOnly "0"
|
||||
seta cg_drawFPSScale "0"
|
||||
seta cg_drawHoldBreathHint "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawSnapshotTime "1"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_flareVisionSetFadeDuration "2000"
|
||||
seta cg_fov_default "65"
|
||||
seta cg_fov_default_thirdperson "40"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.025"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 90"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageDirectionalIconTime "1000"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_mapLocationSelectionRotationSpeed "3"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_mature "1"
|
||||
seta cg_MaxDownedPulseRate "4"
|
||||
seta cg_MinDownedPulseRate "1"
|
||||
seta cg_motionblur_duration "2500"
|
||||
seta cg_motionblur_fadeout "500"
|
||||
seta cg_overheadIconSize "0.7"
|
||||
seta cg_overheadNamesFont "2"
|
||||
seta cg_overheadNamesSize "0.5"
|
||||
seta cg_overheadRankSize "0.5"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "5"
|
||||
seta cg_seatHintFadeTime "2000"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_thirdPersonAngle "354"
|
||||
seta cg_thirdPersonMode "Fixed"
|
||||
seta cg_thirdPersonRange "120"
|
||||
seta cg_timedDamageDuration "500"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_visionSetLerpMaxDecreasePerFrame "0.01"
|
||||
seta cg_visionSetLerpMaxIncreasePerFrame "0.02"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "11"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta clanName ""
|
||||
seta com_first_time_pc "1"
|
||||
seta com_maxfps "85"
|
||||
seta com_recommendedSet "1"
|
||||
seta com_startupIntroPlayed "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassLocalRadarRadius "700"
|
||||
seta compassLocalRadarUpdateTime "2.25"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "18"
|
||||
seta compassObjectiveIconHeightZombie "16"
|
||||
seta compassObjectiveIconWidth "18"
|
||||
seta compassObjectiveIconWidthZombie "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPartialType "0"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateFastTime "2"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSatellitePingFadeTime "10"
|
||||
seta compassSatelliteScanTime "1000"
|
||||
seta compassSatelliteStaticImageFadeTime "0"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassStaticImageUpdateTime "5000"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "1"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "1000"
|
||||
seta con_typewriterDecayStartTime "4000"
|
||||
seta con_typewriterEnabledSounds "0"
|
||||
seta con_typewriterPrintSpeed "40"
|
||||
seta customclass1 "CUSTOM 1"
|
||||
seta customclass2 "CUSTOM 2"
|
||||
seta customclass3 "CUSTOM 3"
|
||||
seta customclass4 "CUSTOM 4"
|
||||
seta customclass5 "CUSTOM 5"
|
||||
seta drawLagometer "0"
|
||||
seta drew_notes "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "0"
|
||||
seta gpad_buttonsConfig "buttons_default"
|
||||
seta gpad_enabled "0"
|
||||
seta gpad_menu_scroll_delay_first "420"
|
||||
seta gpad_menu_scroll_delay_rest "210"
|
||||
seta gpad_rumble "1"
|
||||
seta gpad_sticksConfig "thumbstick_default"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fade_vehiclecontrols "4"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta input_invertPitch "0"
|
||||
seta input_viewSensitivity "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta log_append "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "$('*').addclass"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta playlist_excludeGametype ""
|
||||
seta playlist_excludeGametypeMap ""
|
||||
seta playlist_excludeMap ""
|
||||
seta prestigeclass1 "CUSTOM 6"
|
||||
seta prestigeclass2 "CUSTOM 7"
|
||||
seta prestigeclass3 "CUSTOM 8"
|
||||
seta prestigeclass4 "CUSTOM 9"
|
||||
seta prestigeclass5 "CUSTOM 10"
|
||||
seta profile_physics "0"
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_allow_intz "1"
|
||||
seta r_allow_null_rt "1"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_backBufferSize "960"
|
||||
seta r_backBufferSizeY "544"
|
||||
seta r_blur_allowed "1"
|
||||
seta r_clipCodec "MJPEG"
|
||||
seta r_clipFPS "24"
|
||||
seta r_clipSize "360"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dof_enable "1"
|
||||
seta r_fastSkin "0"
|
||||
seta r_filmLut "-1"
|
||||
seta r_flame_allowed "1"
|
||||
seta r_flameFX_distortionScaleFactor "0 1 1 0.511918"
|
||||
seta r_flameFX_enable "0"
|
||||
seta r_flameFX_fadeDuration "0.5"
|
||||
seta r_flameFX_FPS "15"
|
||||
seta r_flameFX_magnitude "0.0215147"
|
||||
seta r_fovScaleThresholdRigid "2.4"
|
||||
seta r_fovScaleThresholdSkinned "2.4"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1"
|
||||
seta r_gfxopt_dynamic_foliage "1"
|
||||
seta r_gfxopt_water_simulation "1"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "800x600"
|
||||
seta r_monitor "0"
|
||||
seta r_motionblur_directionFactor "0.001"
|
||||
seta r_motionblur_enable "0"
|
||||
seta r_motionblur_frameBased_enable "0"
|
||||
seta r_motionblur_maxblur "30"
|
||||
seta r_motionblur_numberOfSamples "1"
|
||||
seta r_motionblur_positionFactor "0.01"
|
||||
seta r_multiGpu "0"
|
||||
seta r_multithreaded_device "0"
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "1"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_reviveFX_debug "0"
|
||||
seta r_reviveFX_fadeDuration "5"
|
||||
seta r_shaderWarming "0"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "16"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_use_driver_convergence "0"
|
||||
seta r_vsync "1"
|
||||
seta r_waterSheetingFX_allowed "1"
|
||||
seta r_waterSheetingFX_distortionScaleFactor "0.021961 1 0 0"
|
||||
seta r_waterSheetingFX_enable "0"
|
||||
seta r_waterSheetingFX_fadeDuration "2"
|
||||
seta r_waterSheetingFX_magnitude "0.0655388"
|
||||
seta r_waterSheetingFX_radius "4.44051"
|
||||
seta r_zfeather "1"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta scr_bot_difficulty ""
|
||||
seta sd_xa2_device_guid "{9b8bcb8e-52de-4029-a432-98d69fe8fce7}"
|
||||
seta sensitivity "15.891"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_enableEq "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_losOcclusion "1"
|
||||
seta snd_menu_center_channel "1"
|
||||
seta snd_menu_cinematic "1"
|
||||
seta snd_menu_left_channel "1"
|
||||
seta snd_menu_left_surround "1"
|
||||
seta snd_menu_lfe "1"
|
||||
seta snd_menu_listen_level "0"
|
||||
seta snd_menu_master "1"
|
||||
seta snd_menu_music "1"
|
||||
seta snd_menu_right_channel "1"
|
||||
seta snd_menu_right_surround "1"
|
||||
seta snd_menu_sfx "1"
|
||||
seta snd_menu_speaker_setup "0"
|
||||
seta snd_menu_voice "1"
|
||||
seta snd_speakerConfiguration "Stereo"
|
||||
seta stats_backup "1"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "BlackOpsPrivate"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_vac "1"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "160007939"
|
||||
seta sys_configureGHz "0.0849072"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta team_indicator "0"
|
||||
seta ui_allowFov "0"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserGameMode "0"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMap "All"
|
||||
seta ui_browserMod "-2"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "1"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "0"
|
||||
seta ui_browserVoiceChat "-1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_mapCount "14"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_serverBrowserMenu "server_browser_ranked"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
seta xblive_basictraining_popup "0"
|
||||
seta zombiefive_discovered "0"
|
||||
seta zombietron_discovered "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards live parserscript script mpspawnsystem coopinfo serverdemo ddl network scheduler task spu
|
|
@ -0,0 +1,10 @@
|
|||
Call of Duty: Black Ops Commands
|
||||
|
||||
bind KP_END movie_start Film.avi
|
||||
bind KP_PGDN movie_stop Film.avi
|
||||
|
||||
These two commands will allow you to start and stop recording anytime you are playing in a game or watching in theatre mode. You can change the keys to whatever you want and the file name to whatever you want also. 'What you see is what I have assigned. I'm not sure if you can change the extension though.
|
||||
|
||||
seta r_clipSize "xxx"
|
||||
|
||||
Change the number to either 720 or 1080.
|
|
@ -0,0 +1,70 @@
|
|||
Call of Duty: Black Ops Tweaks
|
||||
Performance Commands
|
||||
|
||||
/cg_drawfps 1
|
||||
|
||||
A good one to enter first. This shows you your FPS count, making it more easier to tell when the various tweaks and console commands you try are actually having a consistent impact.
|
||||
|
||||
/stoprecord
|
||||
|
||||
Didn't show any improvement on our test rig, but other people claim it helps with the stuttering.
|
||||
|
||||
/com_maxfps 100
|
||||
|
||||
Locks the maximum FPS rate, hopefully making performance more consistent, if not faster.
|
||||
|
||||
/snaps 30
|
||||
/cl_maxpackets 100
|
||||
/rate 3000
|
||||
|
||||
seta r_dof_enable "0" - Set this to "0" ("1" enables the depth of field visual effect)
|
||||
|
||||
seta r_multiGpu "0" - IF you DO NOT have a dual nVidia SLI graphics card setup or dual ATI CrossFire graphics card setup set this to "0" ("1" enables the full use of a multi graphics card setup)
|
||||
|
||||
seta r_multithreaded_device "1" - Set this to "1" ("0" disables the full use of multicore CPUs. Set it to "0" if you DO NOT have a multicore CPU)
|
||||
|
||||
seta cg_brass "0" - Set this to "0" ("1" enables shells being spit out by weapons when firing)
|
||||
|
||||
seta cg_blood "0" - Set this to "0" ("1" enables blood squirting out of people when shot)
|
||||
|
||||
seta cl_maxpackets "100" - Set to "100" (This slightly improves multiplayer gameplay smoothness)
|
||||
|
||||
seta snaps "30" - (This might improve multiplayer gameplay smoothness)
|
||||
|
||||
Call of Duty: Black Ops Tweaks
|
||||
|
||||
r_multiGpu
|
||||
This should only be enabled if you have multiple graphics cards or a graphics card with multiple GPUs. If you don't have multiple GPUs, don't know what this means, or are having issues with your MultiGPU solution, please set this to "0".
|
||||
|
||||
r_multithreaded_device
|
||||
This setting should be enabled for EVERYBODY as the minimum requirements for Black Ops clearly states that you need a multithreaded (multicore) CPU to run the game. However, some people have noticed that by setting this to "0" some of the skipping lag is relieved. Test this out only as a last resort.
|
||||
|
||||
r_vsync
|
||||
VSync prevents screen tearing. If you don't know what that is, just set it to "0" because you probably don't care anyway. Otherwise, VSync usually doesn't have any negative performance issues with today's graphics cards. However, there may be a few performance issues linked to VSync with the current release of Black Ops. Try setting this to "0" for compatibility.
|
||||
|
||||
r_blur_allowed
|
||||
This setting enables Blur shader effects. If you have a strong shader card, this setting may be negligible. Otherwise, just go ahead and set this to "0".
|
||||
|
||||
r_distortion
|
||||
This setting enables Distortion shader effects. If you have a strong shader card, this setting may be negligible. Otherwise, just go ahead and set this to "0".
|
||||
|
||||
r_dof_enable
|
||||
This setting enables Depth of Field shader effects. If you have a strong shader card, this setting may be negligible. Otherwise, just go ahead and set this to "0".
|
||||
|
||||
r_glow_allowed
|
||||
This setting enables Glow (HDR?) shader effects. Normally, this should have a negligible performance impact. HOWEVER, this setting seems to be buggy! Performance improved DRAMATICALLY when I set this option to "0".
|
||||
|
||||
rate
|
||||
Rate is the rate at which the client sends packets to the server. If you set this too low, below 10000 or so, you run the risk of sending insufficient data to the server and lagging out. Set this too high, above 50000 or so, and you run the risk of flooding your connection to the server. This setting should be adjusted according to your connection speed and may take some fine tuning.
|
||||
|
||||
cl_maxpackets
|
||||
This setting controls how many packets the client will hold to ensure packet transmission. If you set this setting to low, below 20 or so, then you run the risk of being disconnected prematurely. If you set this setting too high, then you run the risk of continually resending redundant data and lowering your ping (or worse, getting choked). This setting is very hard to tune because it depends on so many factors beyond your own connection. Most people put this at half their max fps because that is the sweet spot for food hit registry. The log files are showing a lot of dropped packets so until they fix this mess 100 is your best bet.
|
||||
|
||||
r_blur_allowed 0
|
||||
r_distortion 0
|
||||
r_dof_enable 0
|
||||
r_glow_allowed 0
|
||||
cg_brass 0
|
||||
r_cachemodellighting 1
|
||||
r_cacheSmodellighting 1
|
||||
If you do not have a multi-GPU - r_multiGpu 0
|
|
@ -0,0 +1,319 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind N "+actionslot 1"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "pause"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+frag"
|
||||
seta ai_badPathSpam "0"
|
||||
seta ai_corpseCount "10"
|
||||
seta ai_debugAccuracy "0"
|
||||
seta ai_debugCoverSelection "0"
|
||||
seta ai_debugMeleeAttackSpots "0"
|
||||
seta ai_debugThreatSelection "0"
|
||||
seta ai_ShowCanshootChecks "0"
|
||||
seta ai_showClaimedNode "0"
|
||||
seta ai_showRegion "0"
|
||||
seta airlift_min_spec "0"
|
||||
seta animated_trees_enabled "1"
|
||||
seta bog_b_min_spec "0"
|
||||
seta cg_blood "1"
|
||||
seta cg_bloodLimit "0"
|
||||
seta cg_bloodLimitMsec "330"
|
||||
seta cg_brass "1"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "3"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawFriendlyFireCrosshair "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "500"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "1"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconMaxRangeFlash "500"
|
||||
seta cg_hudGrenadeIconMaxRangeFrag "256"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_nopredict "0"
|
||||
seta cg_small_dev_string_fontscale "1"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "360"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cheat_items_set1 "0"
|
||||
seta cheat_items_set2 "0"
|
||||
seta cheat_points "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "0"
|
||||
seta com_maxfps "0"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "3500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "25"
|
||||
seta compassPlayerWidth "25"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "6"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "6"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "6"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta disable_tank_shock_minspec "1"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_deathDelay "3000"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_fade_ammodisplay "8"
|
||||
seta hud_fade_compass "8"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "8"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta hud_letterBoxFadeTime "1000"
|
||||
seta in_gpuSync "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta min_spec_ai "0"
|
||||
seta mis_01 "1"
|
||||
seta mis_difficulty "40000000000000000000000000000000000000000000000000"
|
||||
seta monkeytoy "1"
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "1"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "0.8"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta s0 "0"
|
||||
seta s1 "0"
|
||||
seta s10 "0"
|
||||
seta s11 "0"
|
||||
seta s12 "0"
|
||||
seta s13 "0"
|
||||
seta s14 "0"
|
||||
seta s15 "0"
|
||||
seta s16 "0"
|
||||
seta s17 "0"
|
||||
seta s18 "0"
|
||||
seta s2 "0"
|
||||
seta s3 "0"
|
||||
seta s4 "0"
|
||||
seta s5 "0"
|
||||
seta s6 "0"
|
||||
seta s7 "0"
|
||||
seta s8 "0"
|
||||
seta s9 "0"
|
||||
seta sensitivity "30"
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_lastSaveGame "profiles/AndrewGerst/save\autosave/cargoship-4.svg"
|
||||
seta sys_configSum "89156434"
|
||||
seta sys_configureGHz "8.79723"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta takeCoverWarnings "9"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_mousePitch "0"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,398 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind , "say_team Thank You!"
|
||||
bind . "say_team You're Welcome!"
|
||||
bind / "say ^2WOW^3WOW^2WOW^3!!"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 3 "+actionslot 3"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind = "say_team Nice Try!!"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind I "chatmodepublic"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind Y "set com_maxfps 60"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "say gg"
|
||||
bind PGUP "say_team GJ"
|
||||
bind HOME "say_team Excellent!!"
|
||||
bind END "say_team Nice Shot!!"
|
||||
bind F1 "say ^2Excuse Me,^3 While i stick a sharp object in your back!"
|
||||
bind F2 "say ^1Sit"
|
||||
bind F3 "say_team lol"
|
||||
bind F4 "say lol"
|
||||
bind KP_ENTER "say ^2Good ^3Job"
|
||||
bind KP_SLASH "say ^1L^3O^1L^3!!"
|
||||
bind KP_MINUS "say ^1Bad Game"
|
||||
bind KP_PLUS "say ^2Good ^3Game"
|
||||
bind KP_STAR "say ^2Good ^3Luck"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+talk"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 204"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "60"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "M60 / RPD"
|
||||
seta customclass2 "Dragon"
|
||||
seta customclass3 "P90"
|
||||
seta customclass4 "M4"
|
||||
seta customclass5 "P90"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.67857"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "-100"
|
||||
seta r_lodBiasSkinned "-200"
|
||||
seta r_lodScaleRigid "2"
|
||||
seta r_lodScaleSkinned "4"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "45"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "CoD4Host"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "1"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.7685"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "0"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "0"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_netGametypeName "dm"
|
||||
seta ui_netSource "1"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1 @@
|
|||
C:\Users\Mary\AppData\Local\VirtualStore\Program Files\Activision\Call of Duty 4 - Modern Warfare\players\profiles\AndrewGerst
|
|
@ -0,0 +1,443 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind , "say_team Thank You!"
|
||||
bind - "say_team Last but NOT least OPEN YOUR EYES!"
|
||||
bind . "say_team You're Welcome!!"
|
||||
bind / "say ^3^2WOW^3WOW^2WOW^3!!"
|
||||
bind 0 "say_team Take frequent looks at your radar. You can track enemy routes / positions! Also communicate where enemy isn't / if there are any AFK!"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "say_team When you play on my team play with some security! For Example:"
|
||||
bind 8 "say_team Communication! Say where the enemy stands! Where the bomb lays! Where snipers are located! Etc..."
|
||||
bind 9 "say_team Also keep an eye on your teammates positions! When they die you will learn the relative location of the enemy!"
|
||||
bind = "say_team Nice Try!!"
|
||||
bind [ "say_team Minimize noise by crouching up stairs!! You should also watch out for grenades / airstrikes at the beginning!!"
|
||||
bind \ "say <?php echo 'Looks Down + Shakes His Head' ?>"
|
||||
bind ] "say_team Check bombs / frequently used routes for claymores! Start defusing bomb by 8 seconds!"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind H "say_team Enemy is NOT:"
|
||||
bind I "chatmodepublic"
|
||||
bind J "say_team Enemy is:"
|
||||
bind K "say_team Bomb is:"
|
||||
bind L "say_team Bathroom!"
|
||||
bind M "say_team Room between Lobby & A"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind U "say_team Computer Room!!"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind X "say_team B Clear!"
|
||||
bind Z "say_team A Clear!"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind UPARROW "say_team Room between Lobby & A"
|
||||
bind DOWNARROW "say_team OUTSIDE!!"
|
||||
bind LEFTARROW "say_team Ran Into Bathroom"
|
||||
bind RIGHTARROW "say_team Ran Across Lobby"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind HOME "say_team Excellent!!!"
|
||||
bind END "say_team Nice Shot!!!"
|
||||
bind F1 "say Hey Guys! This is (Mr. Dot) . AKA $('*').addclass"
|
||||
bind F2 "say ^1HA^2HA^3HA^4HA^5HA^6HA^7HA^8HA^9HA^0HA^7!!!!"
|
||||
bind F3 "say_team GJ"
|
||||
bind F4 "say lol"
|
||||
bind F5 "say_team Stairs to B roof from A"
|
||||
bind F6 "say_team Stairs to B roof from Outside"
|
||||
bind F7 "say_team B roof"
|
||||
bind F8 "say_team Lobby Balcony!!"
|
||||
bind F9 "say_team Planting A"
|
||||
bind F10 "say_team Planting B"
|
||||
bind F11 "say_team No AFK!"
|
||||
bind F12 "say_team Eagles Nest!!"
|
||||
bind KP_ENTER "say ^3^2Good ^3Job!!"
|
||||
bind KP_SLASH "say ^1L^3O^1L^3!!"
|
||||
bind KP_MINUS "say ^5^4^1Bad Game!!"
|
||||
bind KP_PLUS "say ^6^4^3^2Good ^7^5^3Game!!"
|
||||
bind KP_STAR "say ^2Good ^4^3Luck!!"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "1"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "1"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0 0 0 0"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.8 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "1"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "100"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "150"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 0 0 1"
|
||||
seta con_outputSliderColor "0 1 0 1"
|
||||
seta con_outputWindowColor "0 0 0.5 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "M1014"
|
||||
seta customclass2 "AK-74u"
|
||||
seta customclass3 "Mini-Uzi"
|
||||
seta customclass4 "M60E4"
|
||||
seta customclass5 "Dragunov"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "0"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_banIPs ""
|
||||
seta g_clonePlayerMaxVelocity "80"
|
||||
seta g_deadChat "1"
|
||||
seta g_dropForwardSpeed "10"
|
||||
seta g_dropHorzSpeedRand "100"
|
||||
seta g_dropUpSpeedBase "10"
|
||||
seta g_dropUpSpeedRand "5"
|
||||
seta g_log "games_mp.log"
|
||||
seta g_logSync "0"
|
||||
seta g_oldVoting "1"
|
||||
seta g_playerCollisionEjectSpeed "25"
|
||||
seta g_redCrosshairs "1"
|
||||
seta g_useGear "1"
|
||||
seta g_useholdspawndelay "500"
|
||||
seta g_voiceChatTalkingDuration "500"
|
||||
seta g_voteAbstainWeight "0.5"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "0"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "0"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "$('*').addclass"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_detail "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "0"
|
||||
seta r_drawSun "0"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "0.821429"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "4"
|
||||
seta r_lodScaleSkinned "4"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "1"
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "12.6"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "30"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "22"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.785714"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "RigorousSphinx"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.77235"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "-1"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "0"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "5"
|
||||
seta ui_currentNetMap "5"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "0"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "2"
|
||||
seta ui_netGametypeName "sd"
|
||||
seta ui_netSource "2"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta voice_deadChat "0"
|
||||
seta voice_global "0"
|
||||
seta voice_localEcho "0"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,446 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind , "say_team Thank You!"
|
||||
bind - "say_team Last but NOT least OPEN YOUR EYES!"
|
||||
bind . "say_team You're Welcome!!"
|
||||
bind / "say ^3^2WOW^3WOW^2WOW^3!!"
|
||||
bind 0 "say_team Take frequent looks at your radar. You can track enemy routes / positions! Also communicate where enemy isn't / if there are any AFK!"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "say_team When you play on my team play with some security! For Example:"
|
||||
bind 8 "say_team Communication! Say where the enemy stands! Where the bomb lays! Where snipers are located! Etc..."
|
||||
bind 9 "say_team Also keep an eye on your teammates positions! When they die you will learn the relative location of the enemy!"
|
||||
bind = "say_team Nice Try!!"
|
||||
bind [ "say_team Minimize noise by crouching up stairs!! You should also watch out for grenades / airstrikes at the beginning!!"
|
||||
bind \ "say <?php echo 'Looks Down + Shakes His Head' ?>"
|
||||
bind ] "say_team Check bombs / frequently used routes for claymores! Start defusing bomb by 8 seconds!"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind H "say_team Enemy is NOT:"
|
||||
bind I "chatmodepublic"
|
||||
bind J "say_team Enemy is:"
|
||||
bind K "say_team Bomb is:"
|
||||
bind L "say_team Bathroom!"
|
||||
bind M "say_team Room between Lobby & A"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind P "+talk"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind T "openscriptmenu owcommands zoomout"
|
||||
bind U "say_team Computer Room!!"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind X "say_team B Clear!"
|
||||
bind Y "com_maxfps 60"
|
||||
bind Z "say_team A Clear!"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind UPARROW "say_team Room between Lobby & A"
|
||||
bind DOWNARROW "say_team OUTSIDE!!"
|
||||
bind LEFTARROW "say_team Ran Into Bathroom"
|
||||
bind RIGHTARROW "say_team Ran Across Lobby"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "vote no"
|
||||
bind PGUP "vote yes"
|
||||
bind HOME "say_team Excellent!!!"
|
||||
bind END "say_team Nice Shot!!!"
|
||||
bind F1 "say ^2Excuse Me,^3 While i place a sharp object in ur back!"
|
||||
bind F2 "say ^1HA^2HA^3HA^4HA^5HA^6HA^7HA^8HA^9HA^0HA^7!!!!"
|
||||
bind F3 "say_team GJ"
|
||||
bind F4 "say lol"
|
||||
bind F5 "say_team Stairs to B roof from A"
|
||||
bind F6 "say_team Stairs to B roof from Outside"
|
||||
bind F7 "say_team B roof"
|
||||
bind F8 "say_team Lobby Balcony!!"
|
||||
bind F9 "say_team Planting A"
|
||||
bind F10 "say_team Planting B"
|
||||
bind F11 "say_team No AFK!"
|
||||
bind F12 "say_team Eagles Nest!!"
|
||||
bind KP_ENTER "say ^3^2Good ^3Job!!"
|
||||
bind KP_SLASH "say ^1L^3O^1L^3!!"
|
||||
bind KP_MINUS "say ^5^4^1Bad Game!!"
|
||||
bind KP_PLUS "say ^6^4^3^2Good ^7^5^3Game!!"
|
||||
bind KP_STAR "say ^2Good ^4^3Luck!!"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+talk"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "0"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "1"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "0"
|
||||
seta cg_drawFPS "Simple"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "1"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0 0 0 0"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "20"
|
||||
seta cg_ScoresPing_LowColor "0 0.8 0 1"
|
||||
seta cg_ScoresPing_MaxBars "10"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "1"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "600"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "60"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 0 0 1"
|
||||
seta con_outputSliderColor "0 1 0 1"
|
||||
seta con_outputWindowColor "0 0 0.5 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "Custom Slot 1"
|
||||
seta customclass2 "Custom Slot 2"
|
||||
seta customclass3 "Custom Slot 3"
|
||||
seta customclass4 "Custom Slot 4"
|
||||
seta customclass5 "Custom Slot 5"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "0"
|
||||
seta fx_marks "0"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_banIPs ""
|
||||
seta g_clonePlayerMaxVelocity "80"
|
||||
seta g_deadChat "1"
|
||||
seta g_dropForwardSpeed "10"
|
||||
seta g_dropHorzSpeedRand "100"
|
||||
seta g_dropUpSpeedBase "10"
|
||||
seta g_dropUpSpeedRand "5"
|
||||
seta g_log "games_mp.log"
|
||||
seta g_logSync "0"
|
||||
seta g_oldVoting "1"
|
||||
seta g_playerCollisionEjectSpeed "25"
|
||||
seta g_redCrosshairs "1"
|
||||
seta g_useGear "1"
|
||||
seta g_useholdspawndelay "500"
|
||||
seta g_voiceChatTalkingDuration "500"
|
||||
seta g_voteAbstainWeight "0.5"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "1.7"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "0"
|
||||
seta hud_fade_offhand "1.7"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "0"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_detail "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "0"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.79762"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "45"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "30"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "22"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.785714"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "1"
|
||||
seta sv_hostname "^5$('*') ^2Brdcast ^3HC ^1SnD"
|
||||
seta sv_maxclients "20"
|
||||
seta sv_maxPing "600"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.77235"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "-1"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "0"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "20"
|
||||
seta ui_currentNetMap "20"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "0"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "2"
|
||||
seta ui_netGametypeName "koth"
|
||||
seta ui_netSource "2"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta voice_deadChat "0"
|
||||
seta voice_global "0"
|
||||
seta voice_localEcho "0"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,398 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind , "say_team Thank You!"
|
||||
bind . "say_team You're Welcome!"
|
||||
bind / "say ^2WOW^3WOW^2WOW^3!!"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 3 "+actionslot 3"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind = "say_team Nice Try!!"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind I "chatmodepublic"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind Y "set com_maxfps 60"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "say gg"
|
||||
bind PGUP "say_team GJ"
|
||||
bind HOME "say_team Excellent!!"
|
||||
bind END "say_team Nice Shot!!"
|
||||
bind F1 "say ^2Excuse Me,^3 While i stick a sharp object in your back!"
|
||||
bind F2 "say ^1Sit"
|
||||
bind F3 "say_team lol"
|
||||
bind F4 "say lol"
|
||||
bind KP_ENTER "say ^2Good ^3Job"
|
||||
bind KP_SLASH "say ^1L^3O^1L^3!!"
|
||||
bind KP_MINUS "say ^1Bad Game"
|
||||
bind KP_PLUS "say ^2Good ^3Game"
|
||||
bind KP_STAR "say ^2Good ^3Luck"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+talk"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 204"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "60"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "M60 / RPD"
|
||||
seta customclass2 "Dragon"
|
||||
seta customclass3 "P90"
|
||||
seta customclass4 "M4"
|
||||
seta customclass5 "P90"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.67857"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "-100"
|
||||
seta r_lodBiasSkinned "-200"
|
||||
seta r_lodScaleRigid "2"
|
||||
seta r_lodScaleSkinned "4"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "45"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "CoD4Host"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "1"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.7685"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "0"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "0"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_netGametypeName "dm"
|
||||
seta ui_netSource "1"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,398 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind , "say_team Thank You!"
|
||||
bind . "say_team You're Welcome!"
|
||||
bind / "say ^2WOW^3WOW^2WOW^3!!"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 3 "+actionslot 3"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind = "say_team Nice Try!!"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind I "chatmodepublic"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind Y "set com_maxfps 60"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind PGDN "say gg"
|
||||
bind PGUP "say_team GJ"
|
||||
bind HOME "say_team Excellent!!"
|
||||
bind END "say_team Nice Shot!!"
|
||||
bind F1 "say ^2Excuse Me,^3 While i stick a sharp object in your back!"
|
||||
bind F2 "say ^1Sit"
|
||||
bind F3 "say_team lol"
|
||||
bind F4 "say lol"
|
||||
bind KP_ENTER "say ^2Good ^3Job"
|
||||
bind KP_SLASH "say ^1L^3O^1L^3!!"
|
||||
bind KP_MINUS "say ^1Bad Game"
|
||||
bind KP_PLUS "say ^2Good ^3Game"
|
||||
bind KP_STAR "say ^2Good ^3Luck"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+talk"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "0"
|
||||
seta cg_drawFPS "Simple"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "125"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "M60 / RPD"
|
||||
seta customclass2 "Dragon"
|
||||
seta customclass3 "P90"
|
||||
seta customclass4 "M4"
|
||||
seta customclass5 "P90"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "1.7"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "0"
|
||||
seta hud_fade_offhand "1.7"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.67857"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "-100"
|
||||
seta r_lodBiasSkinned "-200"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "45"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "CoD4Host"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "1"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.7685"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "0"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "0"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_netGametypeName "dm"
|
||||
seta ui_netSource "2"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,380 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 3 "+actionslot 3"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+melee"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind I "chatmodepublic"
|
||||
bind N "+actionslot 1"
|
||||
bind O "chatmodeteam"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind V "+leanright"
|
||||
bind W "+forward"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "screenshotjpeg"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+speed_throw"
|
||||
bind MOUSE3 "+talk"
|
||||
bind MWHEELDOWN "+attack"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 204"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "60"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 ""
|
||||
seta customclass2 ""
|
||||
seta customclass3 ""
|
||||
seta customclass4 ""
|
||||
seta customclass5 ""
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "1"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.67857"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "-100"
|
||||
seta r_lodBiasSkinned "-200"
|
||||
seta r_lodScaleRigid "2"
|
||||
seta r_lodScaleSkinned "4"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "45"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "CoD4Host"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "1"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.7685"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "0"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "0"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_netGametypeName "dm"
|
||||
seta ui_netSource "1"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,384 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+leanright"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind N "+actionslot 1"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind T "chatmodepublic"
|
||||
bind V "+melee"
|
||||
bind W "+forward"
|
||||
bind Y "chatmodeteam"
|
||||
bind Z "+talk"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind F1 "vote yes"
|
||||
bind F2 "vote no"
|
||||
bind F4 "+scores"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+toggleads_throw"
|
||||
bind MOUSE3 "+frag"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "1"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "4"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "1"
|
||||
seta cg_drawFPS "Off"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "0"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 204"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "0"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "100"
|
||||
seta cg_ScoresPing_LowColor "0 0.74902 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "0"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "800"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "85"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 1 0.95 0.6"
|
||||
seta con_outputSliderColor "0.15 0.15 0.1 0.6"
|
||||
seta con_outputWindowColor "0.35 0.35 0.3 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "Custom Slot 1"
|
||||
seta customclass2 "Custom Slot 2"
|
||||
seta customclass3 "Custom Slot 3"
|
||||
seta customclass4 "Custom Slot 4"
|
||||
seta customclass5 "Custom Slot 5"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "1"
|
||||
seta fx_marks "1"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_useGear "1"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "0"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "2"
|
||||
seta hud_fade_offhand "0"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "1.7"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name "."
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "2"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "1"
|
||||
seta r_drawWater "1"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "0.8"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "0"
|
||||
seta r_picmip_bump "1"
|
||||
seta r_picmip_manual "0"
|
||||
seta r_picmip_spec "1"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "1"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "19.2286"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "20"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "44"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.8"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "4"
|
||||
seta sv_hostname "CoD4Host"
|
||||
seta sv_maxclients "24"
|
||||
seta sv_maxPing "0"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "1"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.75788"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "0"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "0"
|
||||
seta ui_browserShowFull "1"
|
||||
seta ui_browserShowPassword "-1"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "0"
|
||||
seta ui_currentNetMap "0"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "1"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "0"
|
||||
seta ui_netGametypeName "dm"
|
||||
seta ui_netSource "2"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,403 @@
|
|||
// generated by Call of Duty, do not modify
|
||||
unbindall
|
||||
bind TAB "+scores"
|
||||
bind ESCAPE "togglemenu"
|
||||
bind SPACE "+gostand"
|
||||
bind 1 "weapnext"
|
||||
bind 2 "weapnext"
|
||||
bind 4 "+smoke"
|
||||
bind 5 "+actionslot 3"
|
||||
bind 6 "+actionslot 4"
|
||||
bind 7 "+actionslot 2"
|
||||
bind ` "toggleconsole"
|
||||
bind A "+moveleft"
|
||||
bind B "mp_QuickMessage"
|
||||
bind C "gocrouch"
|
||||
bind D "+moveright"
|
||||
bind E "+leanright"
|
||||
bind F "+activate"
|
||||
bind G "+frag"
|
||||
bind N "+actionslot 1"
|
||||
bind Q "+leanleft"
|
||||
bind R "+reload"
|
||||
bind S "+back"
|
||||
bind T "chatmodepublic"
|
||||
bind V "+melee"
|
||||
bind W "+forward"
|
||||
bind Y "chatmodeteam"
|
||||
bind Z "+talk"
|
||||
bind ~ "toggleconsole"
|
||||
bind PAUSE "toggle cl_paused"
|
||||
bind CTRL "goprone"
|
||||
bind SHIFT "+breath_sprint"
|
||||
bind F1 "vote yes"
|
||||
bind F2 "vote no"
|
||||
bind F4 "+scores"
|
||||
bind F12 "screenshotJPEG"
|
||||
bind MOUSE1 "+attack"
|
||||
bind MOUSE2 "+toggleads_throw"
|
||||
bind MOUSE3 "+frag"
|
||||
seta ai_corpseCount "10"
|
||||
seta cg_blood "1"
|
||||
seta cg_brass "0"
|
||||
seta cg_chatHeight "8"
|
||||
seta cg_chatTime "12000"
|
||||
seta cg_connectionIconSize "0"
|
||||
seta cg_crosshairAlpha "1"
|
||||
seta cg_crosshairAlphaMin "0.5"
|
||||
seta cg_crosshairDynamic "0"
|
||||
seta cg_crosshairEnemyColor "1"
|
||||
seta cg_cursorHints "1"
|
||||
seta cg_debugInfoCornerOffset "0 0"
|
||||
seta cg_descriptiveText "1"
|
||||
seta cg_drawBreathHint "1"
|
||||
seta cg_drawCrosshair "0"
|
||||
seta cg_drawCrosshairNames "0"
|
||||
seta cg_drawFPS "Simple"
|
||||
seta cg_drawFPSLabels "1"
|
||||
seta cg_drawLagometer "1"
|
||||
seta cg_drawMantleHint "1"
|
||||
seta cg_drawSnapshot "0"
|
||||
seta cg_drawTurretCrosshair "1"
|
||||
seta cg_fov "65"
|
||||
seta cg_gameBoldMessageWidth "390"
|
||||
seta cg_gameMessageWidth "455"
|
||||
seta cg_headIconMinScreenRadius "0.015"
|
||||
seta cg_hintFadeTime "100"
|
||||
seta cg_hudChatIntermissionPosition "5 110"
|
||||
seta cg_hudChatPosition "5 200"
|
||||
seta cg_hudDamageIconHeight "64"
|
||||
seta cg_hudDamageIconInScope "0"
|
||||
seta cg_hudDamageIconOffset "128"
|
||||
seta cg_hudDamageIconTime "2000"
|
||||
seta cg_hudDamageIconWidth "128"
|
||||
seta cg_hudGrenadeIconEnabledFlash "0"
|
||||
seta cg_hudGrenadeIconHeight "25"
|
||||
seta cg_hudGrenadeIconInScope "0"
|
||||
seta cg_hudGrenadeIconMaxHeight "104"
|
||||
seta cg_hudGrenadeIconOffset "50"
|
||||
seta cg_hudGrenadeIconWidth "25"
|
||||
seta cg_hudGrenadePointerHeight "12"
|
||||
seta cg_hudGrenadePointerPivot "12 27"
|
||||
seta cg_hudGrenadePointerWidth "25"
|
||||
seta cg_hudMapBorderWidth "2"
|
||||
seta cg_hudMapFriendlyHeight "15"
|
||||
seta cg_hudMapFriendlyWidth "15"
|
||||
seta cg_hudMapPlayerHeight "20"
|
||||
seta cg_hudMapPlayerWidth "20"
|
||||
seta cg_hudMapRadarLineThickness "0.15"
|
||||
seta cg_hudProneY "-160"
|
||||
seta cg_hudSayPosition "5 180"
|
||||
seta cg_hudStanceHintPrints "0"
|
||||
seta cg_hudVotePosition "5 220"
|
||||
seta cg_invalidCmdHintBlinkInterval "600"
|
||||
seta cg_invalidCmdHintDuration "1800"
|
||||
seta cg_laserLight "1"
|
||||
seta cg_mapLocationSelectionCursorSpeed "0.6"
|
||||
seta cg_marks_ents_player_only "0"
|
||||
seta cg_predictItems "1"
|
||||
seta cg_ScoresPing_BgColor "0 0 0 0"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_Interval "20"
|
||||
seta cg_ScoresPing_LowColor "0 0.8 0 1"
|
||||
seta cg_ScoresPing_MaxBars "10"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
seta cg_scriptIconSize "0"
|
||||
seta cg_sprintMeterDisabledColor "0.8 0.1 0.1 0.2"
|
||||
seta cg_sprintMeterEmptyColor "0.7 0.5 0.2 0.8"
|
||||
seta cg_sprintMeterFullColor "0.8 0.8 0.8 0.8"
|
||||
seta cg_subtitleMinTime "3"
|
||||
seta cg_subtitles "1"
|
||||
seta cg_subtitleWidthStandard "520"
|
||||
seta cg_subtitleWidthWidescreen "520"
|
||||
seta cg_teamChatsOnly "0"
|
||||
seta cg_viewZSmoothingMax "16"
|
||||
seta cg_viewZSmoothingMin "1"
|
||||
seta cg_viewZSmoothingTime "0.1"
|
||||
seta cg_voiceIconSize "1"
|
||||
seta cg_weaponCycleDelay "0"
|
||||
seta cg_youInKillCamSize "6"
|
||||
seta cl_allowDownload "1"
|
||||
seta cl_anonymous "0"
|
||||
seta cl_freelook "1"
|
||||
seta cl_maxpackets "30"
|
||||
seta cl_maxPing "600"
|
||||
seta cl_maxppf "5"
|
||||
seta cl_mouseAccel "0"
|
||||
seta cl_packetdup "1"
|
||||
seta cl_pitchspeed "140"
|
||||
seta cl_punkbuster "1"
|
||||
seta cl_voice "1"
|
||||
seta cl_wwwDownload "1"
|
||||
seta cl_yawspeed "140"
|
||||
seta com_introPlayed "1"
|
||||
seta com_maxfps "60"
|
||||
seta com_recommendedSet "1"
|
||||
seta compassClampIcons "1"
|
||||
seta compassCoords "740 3590 400"
|
||||
seta compassECoordCutoff "37"
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
seta compassMaxRange "2500"
|
||||
seta compassMinRadius "0.0001"
|
||||
seta compassMinRange "0.0001"
|
||||
seta compassObjectiveArrowHeight "20"
|
||||
seta compassObjectiveArrowOffset "2"
|
||||
seta compassObjectiveArrowRotateDist "5"
|
||||
seta compassObjectiveArrowWidth "20"
|
||||
seta compassObjectiveDrawLines "1"
|
||||
seta compassObjectiveHeight "20"
|
||||
seta compassObjectiveIconHeight "16"
|
||||
seta compassObjectiveIconWidth "16"
|
||||
seta compassObjectiveMaxRange "2048"
|
||||
seta compassObjectiveMinAlpha "1"
|
||||
seta compassObjectiveNumRings "10"
|
||||
seta compassObjectiveRingSize "80"
|
||||
seta compassObjectiveRingTime "10000"
|
||||
seta compassObjectiveTextHeight "18"
|
||||
seta compassObjectiveTextScale "0.3"
|
||||
seta compassObjectiveWidth "20"
|
||||
seta compassPlayerHeight "18.75"
|
||||
seta compassPlayerWidth "18.75"
|
||||
seta compassRadarLineThickness "0.4"
|
||||
seta compassRadarPingFadeTime "4"
|
||||
seta compassRadarUpdateTime "4"
|
||||
seta compassRotation "1"
|
||||
seta compassSize "1"
|
||||
seta compassSoundPingFadeTime "2"
|
||||
seta compassTickertapeStretch "0.5"
|
||||
seta con_errormessagetime "8"
|
||||
seta con_gameMsgWindow0FadeInTime "0.25"
|
||||
seta con_gameMsgWindow0FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow0Filter "gamenotify obituary"
|
||||
seta con_gameMsgWindow0LineCount "4"
|
||||
seta con_gameMsgWindow0MsgTime "5"
|
||||
seta con_gameMsgWindow0ScrollTime "0.25"
|
||||
seta con_gameMsgWindow0SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow1FadeInTime "0.25"
|
||||
seta con_gameMsgWindow1FadeOutTime "0.01"
|
||||
seta con_gameMsgWindow1Filter "boldgame"
|
||||
seta con_gameMsgWindow1LineCount "5"
|
||||
seta con_gameMsgWindow1MsgTime "8"
|
||||
seta con_gameMsgWindow1ScrollTime "0.25"
|
||||
seta con_gameMsgWindow1SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow2FadeInTime "0.75"
|
||||
seta con_gameMsgWindow2FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow2Filter "subtitle"
|
||||
seta con_gameMsgWindow2LineCount "7"
|
||||
seta con_gameMsgWindow2MsgTime "5"
|
||||
seta con_gameMsgWindow2ScrollTime "0.25"
|
||||
seta con_gameMsgWindow2SplitscreenScale "1.5"
|
||||
seta con_gameMsgWindow3FadeInTime "0.25"
|
||||
seta con_gameMsgWindow3FadeOutTime "0.5"
|
||||
seta con_gameMsgWindow3Filter ""
|
||||
seta con_gameMsgWindow3LineCount "5"
|
||||
seta con_gameMsgWindow3MsgTime "5"
|
||||
seta con_gameMsgWindow3ScrollTime "0.25"
|
||||
seta con_gameMsgWindow3SplitscreenScale "1.5"
|
||||
seta con_inputBoxColor "0.25 0.25 0.2 1"
|
||||
seta con_inputHintBoxColor "0.4 0.4 0.35 1"
|
||||
seta con_matchPrefixOnly "1"
|
||||
seta con_minicon "0"
|
||||
seta con_miniconlines "5"
|
||||
seta con_minicontime "4"
|
||||
seta con_outputBarColor "1 0 0 1"
|
||||
seta con_outputSliderColor "0 1 0 1"
|
||||
seta con_outputWindowColor "0 0 0.5 0.75"
|
||||
seta con_typewriterColorGlowCheckpoint "0.6 0.5 0.6 1"
|
||||
seta con_typewriterColorGlowCompleted "0 0.3 0.8 1"
|
||||
seta con_typewriterColorGlowFailed "0.8 0 0 1"
|
||||
seta con_typewriterColorGlowUpdated "0 0.6 0.18 1"
|
||||
seta con_typewriterDecayDuration "700"
|
||||
seta con_typewriterDecayStartTime "6000"
|
||||
seta con_typewriterPrintSpeed "50"
|
||||
seta customclass1 "Custom Slot 1"
|
||||
seta customclass2 "Custom Slot 2"
|
||||
seta customclass3 "Custom Slot 3"
|
||||
seta customclass4 "Custom Slot 4"
|
||||
seta customclass5 "Custom Slot 5"
|
||||
seta drew_notes "2"
|
||||
seta dynEnt_active "0"
|
||||
seta fx_marks "0"
|
||||
seta fx_marks_ents "1"
|
||||
seta fx_marks_smodels "1"
|
||||
seta g_allowvote "1"
|
||||
seta g_banIPs ""
|
||||
seta g_clonePlayerMaxVelocity "80"
|
||||
seta g_deadChat "1"
|
||||
seta g_dropForwardSpeed "10"
|
||||
seta g_dropHorzSpeedRand "100"
|
||||
seta g_dropUpSpeedBase "10"
|
||||
seta g_dropUpSpeedRand "5"
|
||||
seta g_log "games_mp.log"
|
||||
seta g_logSync "0"
|
||||
seta g_oldVoting "1"
|
||||
seta g_playerCollisionEjectSpeed "25"
|
||||
seta g_redCrosshairs "1"
|
||||
seta g_useGear "1"
|
||||
seta g_useholdspawndelay "500"
|
||||
seta g_voiceChatTalkingDuration "500"
|
||||
seta g_voteAbstainWeight "0.5"
|
||||
seta hud_deathQuoteFadeTime "1000"
|
||||
seta hud_enable "1"
|
||||
seta hud_fade_ammodisplay "1.7"
|
||||
seta hud_fade_compass "0"
|
||||
seta hud_fade_healthbar "0"
|
||||
seta hud_fade_offhand "1.7"
|
||||
seta hud_fade_sprint "1.7"
|
||||
seta hud_fade_stance "0"
|
||||
seta hud_fadeout_speed "0.1"
|
||||
seta hud_flash_period_offhand "0.5"
|
||||
seta hud_flash_time_offhand "2"
|
||||
seta hud_health_pulserate_critical "0.5"
|
||||
seta hud_health_pulserate_injured "1"
|
||||
seta hud_health_startpulse_critical "0.33"
|
||||
seta hud_health_startpulse_injured "1"
|
||||
seta in_mouse "1"
|
||||
seta loc_forceEnglish "0"
|
||||
seta loc_language "0"
|
||||
seta m_filter "0"
|
||||
seta m_forward "0.25"
|
||||
seta m_pitch "0.022"
|
||||
seta m_side "0.25"
|
||||
seta m_yaw "0.022"
|
||||
seta monkeytoy "0"
|
||||
seta name ". is HERE"
|
||||
seta net_noipx "0"
|
||||
seta net_noudp "0"
|
||||
seta net_socksEnabled "0"
|
||||
seta net_socksPassword ""
|
||||
seta net_socksPort "1080"
|
||||
seta net_socksServer ""
|
||||
seta net_socksUsername ""
|
||||
seta r_aaAlpha "dither (fast)"
|
||||
seta r_aaSamples "1"
|
||||
seta r_altModelLightingUpdate "0"
|
||||
seta r_aspectRatio "auto"
|
||||
seta r_autopriority "0"
|
||||
seta r_customMode ""
|
||||
seta r_debugLineWidth "1"
|
||||
seta r_depthPrepass "0"
|
||||
seta r_detail "0"
|
||||
seta r_displayRefresh "60 Hz"
|
||||
seta r_distortion "0"
|
||||
seta r_dlightLimit "0"
|
||||
seta r_dof_enable "0"
|
||||
seta r_drawDecals "1"
|
||||
seta r_drawSun "0"
|
||||
seta r_drawWater "0"
|
||||
seta r_fastSkin "0"
|
||||
seta r_fullscreen "1"
|
||||
seta r_gamma "1.79762"
|
||||
seta r_glow_allowed "0"
|
||||
seta r_ignorehwgamma "0"
|
||||
seta r_inGameVideo "1"
|
||||
seta r_lodBiasRigid "0"
|
||||
seta r_lodBiasSkinned "0"
|
||||
seta r_lodScaleRigid "1"
|
||||
seta r_lodScaleSkinned "1"
|
||||
seta r_mode "640x480"
|
||||
seta r_monitor "0"
|
||||
seta r_multiGpu "0"
|
||||
seta r_picmip "3"
|
||||
seta r_picmip_bump "3"
|
||||
seta r_picmip_manual "1"
|
||||
seta r_picmip_spec "3"
|
||||
seta r_picmip_water "0"
|
||||
seta r_polygonOffsetBias "-1"
|
||||
seta r_polygonOffsetScale "-1"
|
||||
seta r_portalBevels "0.7"
|
||||
seta r_preloadShaders "0"
|
||||
seta r_rendererPreference "Default"
|
||||
seta r_specular "0"
|
||||
seta r_texFilterAnisoMax "4"
|
||||
seta r_texFilterAnisoMin "1"
|
||||
seta r_texFilterMipMode "Unchanged"
|
||||
seta r_vsync "0"
|
||||
seta r_zFeather "0"
|
||||
seta ragdoll_enable "0"
|
||||
seta ragdoll_max_simulating "16"
|
||||
seta rate "25000"
|
||||
seta sensitivity "5"
|
||||
seta server1 ""
|
||||
seta server10 ""
|
||||
seta server11 ""
|
||||
seta server12 ""
|
||||
seta server13 ""
|
||||
seta server14 ""
|
||||
seta server15 ""
|
||||
seta server16 ""
|
||||
seta server2 ""
|
||||
seta server3 ""
|
||||
seta server4 ""
|
||||
seta server5 ""
|
||||
seta server6 ""
|
||||
seta server7 ""
|
||||
seta server8 ""
|
||||
seta server9 ""
|
||||
seta sm_enable "0"
|
||||
seta sm_maxLights "4"
|
||||
seta snaps "30"
|
||||
seta snd_cinematicVolumeScale "0.85"
|
||||
seta snd_enableEq "1"
|
||||
seta snd_errorOnMissing "0"
|
||||
seta snd_khz "22"
|
||||
seta snd_levelFadeTime "250"
|
||||
seta snd_outputConfiguration "Windows default"
|
||||
seta snd_slaveFadeTime "500"
|
||||
seta snd_touchStreamFilesOnLoad "0"
|
||||
seta snd_volume "0.785714"
|
||||
seta sv_allowDownload "1"
|
||||
seta sv_floodprotect "1"
|
||||
seta sv_hostname "^5$('*') ^2Brdcast ^3HC ^1SnD"
|
||||
seta sv_maxclients "20"
|
||||
seta sv_maxPing "600"
|
||||
seta sv_maxRate "5000"
|
||||
seta sv_minPing "0"
|
||||
seta sv_punkbuster "0"
|
||||
seta sv_reconnectlimit "3"
|
||||
seta sv_voice "1"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sys_configSum "4379996"
|
||||
seta sys_configureGHz "8.77235"
|
||||
seta sys_gpu "ATI Radeon HD 2400"
|
||||
seta sys_sysMB "1024"
|
||||
seta ui_bigFont "0.4"
|
||||
seta ui_browserFriendlyfire "-1"
|
||||
seta ui_browserHardcore "-1"
|
||||
seta ui_browserKillcam "-1"
|
||||
seta ui_browserMod "-1"
|
||||
seta ui_browserOldSchool "-1"
|
||||
seta ui_browserShowDedicated "0"
|
||||
seta ui_browserShowEmpty "1"
|
||||
seta ui_browserShowFull "0"
|
||||
seta ui_browserShowPassword "0"
|
||||
seta ui_browserShowPunkBuster "-1"
|
||||
seta ui_browserShowPure "1"
|
||||
seta ui_currentMap "20"
|
||||
seta ui_currentNetMap "20"
|
||||
seta ui_dedicated "0"
|
||||
seta ui_drawCrosshair "0"
|
||||
seta ui_extraBigFont "0.55"
|
||||
seta ui_gametype "0"
|
||||
seta ui_joinGametype "0"
|
||||
seta ui_maxclients "32"
|
||||
seta ui_netGametype "2"
|
||||
seta ui_netGametypeName "koth"
|
||||
seta ui_netSource "2"
|
||||
seta ui_serverStatusTimeOut "7000"
|
||||
seta ui_smallFont "0.25"
|
||||
seta vehDriverViewHeightMax "50"
|
||||
seta vehDriverViewHeightMin "-15"
|
||||
seta vid_xpos "3"
|
||||
seta vid_ypos "22"
|
||||
seta voice_deadChat "0"
|
||||
seta voice_global "0"
|
||||
seta voice_localEcho "0"
|
||||
seta winvoice_mic_mute "1"
|
||||
seta winvoice_mic_reclevel "65535"
|
||||
seta winvoice_mic_scaler "1"
|
||||
seta winvoice_save_voice "0"
|
||||
con_hidechannel *; con_showchannel dontfilter error gamenotify boldgame subtitle obituary logfile_only console_only gfx sound files devgui profile ui client server system playerweap ai anim physics fx leaderboards parserscript script
|
|
@ -0,0 +1,566 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by RigorousSphinx
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "^5$('*') ^2Brdcast ^3HC ^1SnD"
|
||||
sets _Admin "RigorousSphinx"
|
||||
sets _Location "North Carolina, US"
|
||||
sets _Maps "CoD4 Stock"
|
||||
set scr_motd "^3Welcome to $('*') Broadcast HC SnD. Enjoy!!"
|
||||
// set scr_server_rule_1 "Rule 1. Dont Cheat!"
|
||||
// set scr_server_rule_2 "Rule 2. Dont Abuse the server"
|
||||
// set scr_server_rule_3 "Rule 3. Dont Chat Spam"
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0 = No Log, 1 = Buffered, 2 = Continuous, 3 = Append
|
||||
set logfile "1" // 0 = No Log, 1 = Log File Enabled
|
||||
set g_log "games_mp.log" // Name of log file, D: games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network Options
|
||||
// set net_ip "1.2.3.4" // Set your servers IP address
|
||||
// set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master Servers
|
||||
set sv_master1 "cod4master.activision.com"
|
||||
set sv_master2 "cod4authorize.activision.com"
|
||||
set sv_master3 "cod4master.infinityward.com"
|
||||
set sv_master3 "cod4update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "aag" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
set g_password ""
|
||||
|
||||
// Player Slots
|
||||
set sv_maxclients "24" // MAX server player slots, this is TOTAL player slots, D: 32
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, D: 0
|
||||
set sv_maxping "800" // MAX player ping on CONNECT, D: 350
|
||||
|
||||
// Client Download Settings, (0=off/1=on) Used for MODs and custom maps
|
||||
// set sv_allowdownload "1"
|
||||
// seta sv_wwwDownload "1"
|
||||
// seta sv_wwwBaseURL "http://184.39.49.56/p/cod"
|
||||
// seta sv_wwwDlDisconnected "0"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "5000"
|
||||
|
||||
// FPS
|
||||
// set sv_fps "20"
|
||||
|
||||
// Drop Inactive Players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// Anti Flooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "0"
|
||||
|
||||
// Anti Lag
|
||||
set g_antilag "1"
|
||||
set g_smoothClients "1"
|
||||
|
||||
// Temporary Ban Duration
|
||||
set sv_kickBanTime "120" // D: 3600
|
||||
|
||||
// In-Game Voice Communication System
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Modded Settings
|
||||
//******************************************************************************
|
||||
// set scr_xpscale "1"
|
||||
// set scr_fog_disable "1"
|
||||
// set jump_height "800"
|
||||
// set g_gravity "100"
|
||||
// set g_speed "350"
|
||||
// set bg_fallDamageMaxHeight "9999"
|
||||
// set bg_fallDamageMinHeight "9999"
|
||||
// set r_fullbright "1"
|
||||
// set player_sustainAmmo "1"
|
||||
// set cg_laserForceOn "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Misc Settings
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_compassShowEnemies "0"
|
||||
set g_deadChat "0"
|
||||
// set g_maxDroppedWeapons "16"
|
||||
// set g_redCrosshairs "0"
|
||||
// set scr_drawfriend "1"
|
||||
// ui_maxclients 32
|
||||
// ui_allowvote "1"
|
||||
// ui_allow_classchange "1"
|
||||
// ui_allow_controlschange "1"
|
||||
// ui_allow_teamchange "1"
|
||||
// ui_stat_headshots ""
|
||||
|
||||
set scr_friendlyfire "0"
|
||||
set scr_freelook "1"
|
||||
set scr_killcam "1"
|
||||
set scr_spectateenemy "1"
|
||||
set scr_allow_vote "1"
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Voting
|
||||
set g_allowVote "1"
|
||||
// set g_voteAbstainWeight "0.5"
|
||||
// g_allowVoteKick
|
||||
// g_allowVoteMap
|
||||
// g_allowVoteMapRestart
|
||||
// g_allowVoteMapRotate
|
||||
// g_allowVoteTempBanUser
|
||||
// g_allowVoteTypeMap
|
||||
// g_allowVoteDrawFriend
|
||||
// g_allowVoteFriendlyFire
|
||||
// g_allowVoteKillCam
|
||||
|
||||
// Gameplay
|
||||
set scr_game_allowkillcam 1
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 2
|
||||
set scr_game_forceuav 0
|
||||
|
||||
// Hardpoints
|
||||
set scr_game_hardpoints 1
|
||||
set scr_hardpoint_allowuav 1
|
||||
set scr_hardpoint_allowartillery 1
|
||||
set scr_hardpoint_allowhelicopter 1
|
||||
set scr_hardpoint_allowsupply 1
|
||||
|
||||
// Helicopter Settings
|
||||
// set scr_heli_armor 500
|
||||
// set scr_heli_armor_bulletdamage 0.3
|
||||
// set scr_heli_attract_range 4096
|
||||
// set scr_heli_attract_strength 1000
|
||||
// set scr_heli_hardpoint_interval 180
|
||||
// set scr_heli_health_degrade 0
|
||||
// set scr_heli_loopmax 1
|
||||
// set scr_heli_maxhealth 1100
|
||||
// set scr_heli_missile_engage_dist 2000
|
||||
// set scr_heli_missile_friendlycare 256
|
||||
// set scr_heli_missile_max 3
|
||||
// set scr_heli_missile_regen_time 10
|
||||
// set scr_heli_missile_rof 5
|
||||
// set scr_heli_missile_target_cone 0.3
|
||||
// set scr_heli_rage_missile 5
|
||||
// set scr_heli_target_recognition 0.5
|
||||
// set scr_heli_target_spawnprotection 5
|
||||
// set scr_heli_targeting_delay 0.5
|
||||
// set scr_heli_turret_engage_dist 1000
|
||||
// set scr_heli_turret_spinup_delay 0.75
|
||||
// set scr_heli_turretClipSize 40
|
||||
// set scr_heli_turretReloadTime 1.5
|
||||
// set scr_heli_visual_range 3500
|
||||
|
||||
// Teams
|
||||
set scr_team_fftype 0
|
||||
set scr_team_teamkillspawndelay 20
|
||||
set scr_team_kickteamkillers 0
|
||||
|
||||
// Player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// UI
|
||||
set scr_hardcore 1
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
//******************************************************************************
|
||||
// Perks
|
||||
//******************************************************************************
|
||||
set scr_game_perks 1
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
// set perk_armorVest 75
|
||||
// set perk_bulletDamage 40
|
||||
// set perk_explosiveDamage 25
|
||||
|
||||
//******************************************************************************
|
||||
// Class Limits
|
||||
//******************************************************************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//******************************************************************************
|
||||
// Class Team Options
|
||||
//******************************************************************************
|
||||
set allies_allow_assault 1
|
||||
set axis_allow_assault 1
|
||||
set allies_allow_specops 1
|
||||
set axis_allow_specops 1
|
||||
set allies_allow_heavygunner 1
|
||||
set axis_allow_heavygunner 1
|
||||
set allies_allow_demolitions 1
|
||||
set axis_allow_demolitions 1
|
||||
set allies_allow_sniper 1
|
||||
set axis_allow_sniper 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Specops Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Heavygunner Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Demolitions Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Move Speed
|
||||
//******************************************************************************
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
//******************************************************************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//******************************************************************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 1
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG
|
||||
//******************************************************************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotguns
|
||||
//******************************************************************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotgun Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG
|
||||
//******************************************************************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistols
|
||||
//******************************************************************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistol Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//******************************************************************************
|
||||
// Grenades / Explosives
|
||||
//******************************************************************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
// set scr_weapon_allowc4 1
|
||||
// set scr_weapon_allowclaymores 1
|
||||
// set scr_weapon_allowflash 1
|
||||
// set scr_weapon_allowfrags 1
|
||||
// set scr_weapon_allowmines 1
|
||||
// set scr_weapon_allowrpgs 1
|
||||
// set scr_weapon_allowsmoke 1
|
||||
|
||||
//******************************************************************************
|
||||
// Game Type Settings
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Free For All Deathmatch:
|
||||
//******************************************************************************
|
||||
set scr_dm_scorelimit 250
|
||||
// set scr_dm_timelimit
|
||||
// set scr_dm_numlives
|
||||
// set scr_dm_roundlimit
|
||||
set scr_dm_playerrespawndelay -9
|
||||
set scr_dm_waverespawndelay -9
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Domination:
|
||||
//******************************************************************************
|
||||
// set scr_dom_scorelimit
|
||||
// set scr_dom_timelimit
|
||||
// set scr_dom_numlives
|
||||
// set scr_dom_roundlimit
|
||||
// set scr_dom_playerrespawndelay
|
||||
// set scr_dom_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Headquarters:
|
||||
//******************************************************************************
|
||||
// set scr_koth_scorelimit
|
||||
// set scr_koth_timelimit
|
||||
// set scr_koth_numlives
|
||||
// set scr_koth_roundlimit
|
||||
// set scr_koth_roundswitch
|
||||
// set scr_koth_playerrespawndelay
|
||||
// set scr_koth_waverespawndelay
|
||||
// set koth_autodestroytime
|
||||
// set koth_kothmode
|
||||
// set koth_spawntime
|
||||
// set koth_delayPlayer 0
|
||||
// set koth_spawnDelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Sabotage:
|
||||
//******************************************************************************
|
||||
// set scr_sab_scorelimit
|
||||
// set scr_sab_timelimit
|
||||
// set scr_sab_numlives
|
||||
// set scr_sab_bombtimer
|
||||
// set scr_sab_defusetime
|
||||
// set scr_sab_hotpotato
|
||||
// set scr_sab_planttime
|
||||
// set scr_sab_roundlimit
|
||||
// set scr_sab_roundswitch
|
||||
// set scr_sab_playerrespawndelay 4
|
||||
// set scr_sab_waverespawndelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Search & Destroy
|
||||
//******************************************************************************
|
||||
set scr_sd_scorelimit 15
|
||||
// set scr_sd_timelimit
|
||||
// set scr_sd_numlives
|
||||
// set scr_sd_bombtimer
|
||||
// set scr_sd_defusetime
|
||||
// set scr_sd_multibomb
|
||||
// set scr_sd_planttime
|
||||
// set scr_sd_roundlimit
|
||||
// set scr_sd_roundswitch
|
||||
// set scr_sd_playerrespawndelay
|
||||
// set scr_sd_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Team Deathmatch :
|
||||
//******************************************************************************
|
||||
// set scr_war_scorelimit
|
||||
// set scr_war_timelimit
|
||||
// set scr_war_numlives
|
||||
// set scr_war_roundlimit
|
||||
// set scr_war_playerrespawndelay 1
|
||||
// set scr_war_waverespawndelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Game Types
|
||||
//******************************************************************************
|
||||
set g_gametype "sd"
|
||||
|
||||
//******************************************************************************
|
||||
// Map Rotations
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype sd map mp_broadcast"
|
|
@ -0,0 +1,149 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by RigorousSphinx
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "^5$('*') ^2Brdcast ^3HC ^1SnD"
|
||||
sets _Admin "RigorousSphinx"
|
||||
sets _Location "North Carolina, US"
|
||||
sets _Maps "CoD4 Stock"
|
||||
set scr_motd "^3Welcome to $('*') Broadcast HC SnD. Enjoy!!"
|
||||
// set scr_server_rule_1 "Rule 1. Dont Cheat!"
|
||||
// set scr_server_rule_2 "Rule 2. Dont Abuse the server"
|
||||
// set scr_server_rule_3 "Rule 3. Dont Chat Spam"
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Punkbuster
|
||||
// seta sv_punkbuster 1
|
||||
// wait
|
||||
// pb_sv_enable
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated 2
|
||||
|
||||
// Log Settings
|
||||
// set g_logsync 2
|
||||
// set logfile 1
|
||||
// set g_log "games_mp.log"
|
||||
// set sv_log_damage 1
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "aag"
|
||||
|
||||
// Player Slots
|
||||
set sv_maxclients 20
|
||||
|
||||
// Ping
|
||||
set sv_minPing 0
|
||||
set sv_maxping 800
|
||||
|
||||
// Rate
|
||||
set sv_maxRate 5000
|
||||
|
||||
// Drop Inactive Players
|
||||
set sv_timeout 300
|
||||
set sv_zombietime 1
|
||||
set g_inactivity 0
|
||||
set g_inactivityspectator 0
|
||||
|
||||
// Anti Flooding Settings
|
||||
set sv_floodProtect 1
|
||||
set sv_reconnectlimit 3
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole 0
|
||||
set cl_autocmd 0
|
||||
set sv_cheats 0
|
||||
set sv_pure 1
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam 1
|
||||
set sv_punkbuster 0
|
||||
|
||||
// Anti Lag
|
||||
set g_antilag 1
|
||||
set g_smoothClients 1
|
||||
|
||||
// Temporary Ban Duration
|
||||
set sv_kickBanTime 120
|
||||
|
||||
// In-Game Voice Communication System
|
||||
set sv_voice 0
|
||||
set sv_voiceQuality 1
|
||||
set voice_deadChat 0
|
||||
set voice_global 0
|
||||
set voice_localEcho 0
|
||||
set winvoice_mic_mute 1
|
||||
|
||||
//******************************************************************************
|
||||
// Misc Settings
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous 0
|
||||
set g_compassShowEnemies 0
|
||||
set g_deadChat 0
|
||||
set scr_friendlyfire 0
|
||||
set scr_freelook 1
|
||||
set scr_killcam 1
|
||||
set scr_spectateenemy 1
|
||||
set scr_allow_vote 1
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Voting
|
||||
set g_allowVote 1
|
||||
|
||||
// Gameplay
|
||||
set scr_game_allowkillcam 1
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 2
|
||||
set scr_game_forceuav 0
|
||||
|
||||
// Teams
|
||||
set scr_team_fftype 0
|
||||
set scr_team_teamkillspawndelay 20
|
||||
set scr_team_kickteamkillers 0
|
||||
|
||||
// Player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// UI
|
||||
set scr_hardcore 1
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
//******************************************************************************
|
||||
// Search & Destroy
|
||||
//******************************************************************************
|
||||
set scr_sd_scorelimit 15
|
||||
// set scr_sd_timelimit
|
||||
// set scr_sd_numlives
|
||||
// set scr_sd_bombtimer
|
||||
// set scr_sd_defusetime
|
||||
// set scr_sd_multibomb
|
||||
// set scr_sd_planttime
|
||||
// set scr_sd_roundlimit
|
||||
// set scr_sd_roundswitch
|
||||
// set scr_sd_playerrespawndelay
|
||||
// set scr_sd_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Game Types
|
||||
//******************************************************************************
|
||||
set g_gametype "sd"
|
||||
|
||||
//******************************************************************************
|
||||
// Map Rotations
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype sd map mp_broadcast"
|
|
@ -0,0 +1,619 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by RigorousSphinx
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server" // ^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server
|
||||
sets _Admin "RigorousSphinx"
|
||||
// sets _Email "admin AT yoursite DOT com"
|
||||
// sets _Website "http://www.cod4boards.com"
|
||||
sets _Location "North Carolina, US"
|
||||
// sets _Irc ""
|
||||
// sets _Mod "Your fs_game"
|
||||
// sets _ModVer "1.0"
|
||||
// sets _ModUpdate "3Right Now"
|
||||
// sets _Maps "COD2 Stock"
|
||||
// set scr_motd "cod4boards.com"
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0 = No Log, 1 = Buffered, 2 = Continuous, 3 = Append
|
||||
set logfile "1" // 0 = No Log, 1 = Log File Enabled
|
||||
set g_log "games_mp.log" // Name of log file, D: games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network Options
|
||||
// set net_ip "1.2.3.4" // Set your servers IP address
|
||||
// set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master Servers
|
||||
set sv_master1 "cod2master.activision.com"
|
||||
set sv_master2 "cod2authorize.activision.com"
|
||||
set sv_master3 "cod2master.infinityward.com"
|
||||
set sv_master3 "cod2update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "aag" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
|
||||
// The following can be used to lock out the server so that only those
|
||||
// players that have been provide the password can connect. Good for
|
||||
// matches, practices, etc.
|
||||
set g_password ""
|
||||
|
||||
// Player Slots
|
||||
set sv_maxclients "24" // MAX server player slots, this is TOTAL player slots, D: 32
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, D: 0
|
||||
set sv_maxping "800" // MAX player ping on CONNECT, D: 350
|
||||
|
||||
// Client Download Settings, (0=off/1=on) Used for MODs and custom maps
|
||||
// See included Quick Setup Guide for instructions.
|
||||
// set sv_allowdownload "1"
|
||||
// seta sv_wwwDownload "1"
|
||||
// seta sv_wwwBaseURL "http://www.xxx.xxx.xx"
|
||||
// seta sv_wwwDlDisconnected "1"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "5000"
|
||||
|
||||
// FPS
|
||||
// set sv_fps "20"
|
||||
|
||||
// Drop Inactive Players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// Anti Flooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "0"
|
||||
|
||||
// Anti Lag
|
||||
set g_antilag "1"
|
||||
// set g_smoothClients "1"
|
||||
|
||||
// Temporary Ban Duration
|
||||
set sv_kickBanTime "120" // D: 3600
|
||||
|
||||
// In-Game Voice Communication System
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Modded Settings
|
||||
//******************************************************************************
|
||||
set scr_xpscale 10
|
||||
// set scr_fog_disable 1
|
||||
set jump_height 800
|
||||
set g_gravity 100
|
||||
set g_speed 350
|
||||
set bg_fallDamageMaxHeight 9999
|
||||
set bg_fallDamageMinHeight 9999
|
||||
set r_fullbright 1
|
||||
set player_sustainAmmo 1
|
||||
set cg_laserForceOn 1
|
||||
|
||||
//******************************************************************************
|
||||
// Misc Settings
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_compassShowEnemies "0"
|
||||
set g_deadChat "0"
|
||||
// set g_maxDroppedWeapons "16"
|
||||
// set g_redCrosshairs "0"
|
||||
set g_allowVote "1"
|
||||
// set g_voteAbstainWeight "0.5"
|
||||
// ui_maxclients 32
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Gameplay
|
||||
set scr_game_allowkillcam 1
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 1
|
||||
set scr_game_forceuav 0
|
||||
|
||||
// Hardpoints
|
||||
set scr_game_hardpoints 1
|
||||
set scr_hardpoint_allowuav 1
|
||||
set scr_hardpoint_allowartillery 1
|
||||
set scr_hardpoint_allowhelicopter 1
|
||||
set scr_hardpoint_allowsupply 1
|
||||
|
||||
// Helicopter Settings
|
||||
// set scr_heli_armor 500
|
||||
// set scr_heli_armor_bulletdamage 0.3
|
||||
// set scr_heli_attract_range 4096
|
||||
// set scr_heli_attract_strength 1000
|
||||
// set scr_heli_hardpoint_interval 180
|
||||
// set scr_heli_health_degrade 0
|
||||
// set scr_heli_loopmax 1
|
||||
// set scr_heli_maxhealth 1100
|
||||
// set scr_heli_missile_engage_dist 2000
|
||||
// set scr_heli_missile_friendlycare 256
|
||||
// set scr_heli_missile_max 3
|
||||
// set scr_heli_missile_regen_time 10
|
||||
// set scr_heli_missile_rof 5
|
||||
// set scr_heli_missile_target_cone 0.3
|
||||
// set scr_heli_rage_missile 5
|
||||
// set scr_heli_target_recognition 0.5
|
||||
// set scr_heli_target_spawnprotection 5
|
||||
// set scr_heli_targeting_delay 0.5
|
||||
// set scr_heli_turret_engage_dist 1000
|
||||
// set scr_heli_turret_spinup_delay 0.75
|
||||
// set scr_heli_turretClipSize 40
|
||||
// set scr_heli_turretReloadTime 1.5
|
||||
// set scr_heli_visual_range 3500
|
||||
|
||||
// Teams
|
||||
set scr_team_fftype 0
|
||||
set scr_team_teamkillspawndelay 20
|
||||
set scr_team_kickteamkillers 0
|
||||
|
||||
// Player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// UI
|
||||
set scr_hardcore 1
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
//******************************************************************************
|
||||
// Perks
|
||||
//******************************************************************************
|
||||
set scr_game_perks 1
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
// set perk_armorVest 75
|
||||
// set perk_bulletDamage 40
|
||||
// set perk_explosiveDamage 25
|
||||
|
||||
//******************************************************************************
|
||||
// Class Limits
|
||||
//******************************************************************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//******************************************************************************
|
||||
// Class Team Options
|
||||
//******************************************************************************
|
||||
// set allies_allow_assault 1
|
||||
// set axis_allow_assault 1
|
||||
// set allies_allow_specops 1
|
||||
// set axis_allow_specops 1
|
||||
// set allies_allow_heavygunner 1
|
||||
// set axis_allow_heavygunner 1
|
||||
// set allies_allow_demolitions 1
|
||||
// set axis_allow_demolitions 1
|
||||
// set allies_allow_sniper 1
|
||||
// set axis_allow_sniper 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Specops Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Heavygunner Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Demolitions Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Move Speed
|
||||
//******************************************************************************
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
//******************************************************************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//******************************************************************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 1
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG
|
||||
//******************************************************************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotguns
|
||||
//******************************************************************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotgun Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG
|
||||
//******************************************************************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistols
|
||||
//******************************************************************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistol Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//******************************************************************************
|
||||
// Grenades / Explosives
|
||||
//******************************************************************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
// set scr_weapon_allowc4 1
|
||||
// set scr_weapon_allowclaymores 1
|
||||
// set scr_weapon_allowflash 1
|
||||
// set scr_weapon_allowfrags 1
|
||||
// set scr_weapon_allowmines 1
|
||||
// set scr_weapon_allowrpgs 1
|
||||
// set scr_weapon_allowsmoke 1
|
||||
|
||||
//******************************************************************************
|
||||
// Game Type Settings
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Free For All Deathmatch:
|
||||
//******************************************************************************
|
||||
// set scr_dm_scorelimit
|
||||
// set scr_dm_timelimit
|
||||
// set scr_dm_numlives
|
||||
// set scr_dm_playerrespawndelay
|
||||
// set scr_dm_roundlimit
|
||||
// set scr_dm_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Domination:
|
||||
//******************************************************************************
|
||||
// set scr_dom_scorelimit
|
||||
// set scr_dom_timelimit
|
||||
// set scr_dom_numlives
|
||||
// set scr_dom_playerrespawndelay
|
||||
// set scr_dom_roundlimit
|
||||
// set scr_dom_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Headquarters:
|
||||
//******************************************************************************
|
||||
// set scr_koth_scorelimit
|
||||
// set scr_koth_timelimit
|
||||
// set scr_koth_numlives
|
||||
// set scr_koth_playerrespawndelay
|
||||
// set scr_koth_roundlimit
|
||||
// set scr_koth_roundswitch
|
||||
// set scr_koth_waverespawndelay
|
||||
// koth_autodestroytime
|
||||
// koth_kothmode
|
||||
// koth_spawntime
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Sabotage:
|
||||
//******************************************************************************
|
||||
// set scr_sab_scorelimit
|
||||
// set scr_sab_timelimit
|
||||
// set scr_sab_numlives
|
||||
// set scr_sab_bombtimer
|
||||
// set scr_sab_defusetime
|
||||
// set scr_sab_hotpotato
|
||||
// set scr_sab_planttime
|
||||
// set scr_sab_playerrespawndelay
|
||||
// set scr_sab_roundlimit
|
||||
// set scr_sab_roundswitch
|
||||
// set scr_sab_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Search & Destroy
|
||||
//******************************************************************************
|
||||
// set scr_sd_scrorelimit
|
||||
// set scr_sd_timelimit
|
||||
// set scr_sd_numlives
|
||||
// set scr_sd_bombtimer
|
||||
// set scr_sd_defusetime
|
||||
// set scr_sd_multibomb
|
||||
// set scr_sd_planttime
|
||||
// set scr_sd_playerrespawndelay
|
||||
// set scr_sd_roundlimit
|
||||
// set scr_sd_roundswitch
|
||||
// set scr_sd_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Team Deathmatch :
|
||||
//******************************************************************************
|
||||
// set scr_war_scorelimit
|
||||
// set scr_war_timelimit
|
||||
// set scr_war_numlives
|
||||
// set scr_war_playerrespawndelay
|
||||
// set scr_war_roundlimit
|
||||
// set scr_war_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Map Names
|
||||
//******************************************************************************
|
||||
// ambush = mp_convoy
|
||||
// backlot = mp_backlot
|
||||
// bloc = mp_bloc
|
||||
// bog = mp_bog
|
||||
// countdown = mp_countdown
|
||||
// crash = mp_crash
|
||||
// crossfire = mp_crossfire
|
||||
// district = mp_citystreets
|
||||
// downpour = mp_farm
|
||||
// overgrown = mp_overgrown
|
||||
// pipeline = mp_pipeline
|
||||
// shipment = mp_shipment
|
||||
// showdown = mp_showdown
|
||||
// strike = mp_strike
|
||||
// vacant = mp_vacant
|
||||
// wet work = mp_cargoship
|
||||
// winter crash = mp_crash_snow
|
||||
// broadcast = mp_broadcast
|
||||
// creek = mp_creek
|
||||
// chinatown = mp_carentan
|
||||
// killhouse = mp_killhouse
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Game Types
|
||||
//******************************************************************************
|
||||
// "dm" - Free For All Deathmatch
|
||||
// "dom" - Domination
|
||||
// "koth" - Headquarters
|
||||
// "sab" - Sabotage
|
||||
// "sd" - Search & Destroy
|
||||
// "war" - Team Deathmatch
|
||||
//******************************************************************************
|
||||
set g_gametype "sd"
|
||||
|
||||
//******************************************************************************
|
||||
// Map Rotations
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_backlot gametype dm map mp_bloc gametype dm map mp_bog gametype dm map mp_cargoship gametype dm map mp_citystreets gametype dm map mp_convoy gametype dm map mp_countdown gametype dm map mp_crash gametype dm map mp_crossfire gametype dm map mp_farm gametype dm map mp_overgrown gametype dm map mp_pipeline gametype dm map mp_shipment gametype dm map mp_showdown gametype dm map mp_strike gametype dm map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DOM -- DOMINATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dom map mp_backlot gametype dom map mp_bloc gametype dom map mp_bog gametype dom map mp_cargoship gametype dom map mp_citystreets gametype dom map mp_convoy gametype dom map mp_countdown gametype dom map mp_crash gametype dom map mp_crossfire gametype dom map mp_farm gametype dom map mp_overgrown gametype dom map mp_pipeline gametype dom map mp_shipment gametype dom map mp_showdown gametype dom map mp_strike gametype dom map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// KOTH -- HEADQUARTERS
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SAB -- SABOTAGE
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// WAR -- TEAM DEATHMATCH
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_shipment gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_broadcast gametype dom map mp_broadcast gametype koth map mp_broadcast gametype sab map mp_broadcast gametype sd map mp_broadcast gametype war map mp_broadcast"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- DEVMAP ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm devmap mp_broadcast gametype dom devmap mp_broadcast gametype koth devmap mp_broadcast gametype sab devmap mp_broadcast gametype sd devmap mp_broadcast gametype war devmap mp_broadcast"
|
|
@ -0,0 +1,702 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by RigorousSphinx
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server" // ^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server
|
||||
sets _Admin "RigorousSphinx"
|
||||
// sets _Email "admin AT yoursite DOT com"
|
||||
// sets _Website "http://www.cod4boards.com"
|
||||
sets _Location "North Carolina, US"
|
||||
// sets _Vent ""
|
||||
// sets _Irc ""
|
||||
sets _Maps "CoD4 Stock"
|
||||
set scr_motd "^3Welcome to $('*') Modded Server. Enjoy!!"
|
||||
// set scr_server_rule_1 "Rule 1. Dont Cheat!"
|
||||
// set scr_server_rule_2 "Rule 2. Dont Abuse the server"
|
||||
// set scr_server_rule_3 "Rule 3. Dont Chat Spam"
|
||||
// set scr_server_rule_4 "Rule 4. Test 1"
|
||||
// set scr_server_rule_5 "Rule 5. Test 2"
|
||||
|
||||
//******************************************************************************
|
||||
// Load Mods
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// PeZBOT Mod
|
||||
//******************************************************************************
|
||||
// set fs_game "mods/pezbot"
|
||||
// sets _Mod "Pezbot"
|
||||
// sets _ModVer "006p"
|
||||
// sets _ModUpdate "^3Right Now"
|
||||
// set svr_pezbots "5"
|
||||
// set svr_pezbots_team "autoassign"
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// AWE4 Mod
|
||||
//******************************************************************************
|
||||
// set fs_game "mods/awe4"
|
||||
// sets _Mod "AWE4"
|
||||
// sets _ModVer "006p"
|
||||
// sets _ModUpdate "^3Right Now"
|
||||
// exec awe.cfg
|
||||
// exec forceweapons.cfg
|
||||
// exec htf.cfg
|
||||
// exec ctfb.cfg
|
||||
// exec ctf.cfg
|
||||
// exec ch.cfg
|
||||
// exec cnq.cfg
|
||||
// exec re.cfg
|
||||
// exec anti-camper.cfg
|
||||
// exec playercontrol.cfg
|
||||
// exec weaponcontrol.cfg
|
||||
// exec gametypes.cfg
|
||||
// exec maprotation.cfg
|
||||
// set scr_testclients "0"
|
||||
// set loc_warnings 0
|
||||
// set loc_warningsAsErrors 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Init & Exec CFG Files
|
||||
//******************************************************************************
|
||||
// wait
|
||||
// exec test1.cfg
|
||||
// wait
|
||||
// exec test2.cfg
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0 = No Log, 1 = Buffered, 2 = Continuous, 3 = Append
|
||||
set logfile "1" // 0 = No Log, 1 = Log File Enabled
|
||||
set g_log "games_mp.log" // Name of log file, D: games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network Options
|
||||
// set net_ip "1.2.3.4" // Set your servers IP address
|
||||
// set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master Servers
|
||||
set sv_master1 "cod4master.activision.com"
|
||||
set sv_master2 "cod4authorize.activision.com"
|
||||
set sv_master3 "cod4master.infinityward.com"
|
||||
set sv_master3 "cod4update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "aag" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
set g_password ""
|
||||
|
||||
// Player Slots
|
||||
set sv_maxclients "24" // MAX server player slots, this is TOTAL player slots, D: 32
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, D: 0
|
||||
set sv_maxping "800" // MAX player ping on CONNECT, D: 350
|
||||
|
||||
// Client Download Settings, (0=off/1=on) Used for MODs and custom maps
|
||||
set sv_allowdownload "1"
|
||||
seta sv_wwwDownload "1"
|
||||
seta sv_wwwBaseURL "http://184.39.49.56/p/cod"
|
||||
seta sv_wwwDlDisconnected "0"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "5000"
|
||||
|
||||
// FPS
|
||||
// set sv_fps "20"
|
||||
|
||||
// Drop Inactive Players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// Anti Flooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "0"
|
||||
|
||||
// Anti Lag
|
||||
set g_antilag "1"
|
||||
set g_smoothClients "1"
|
||||
|
||||
// Temporary Ban Duration
|
||||
set sv_kickBanTime "120" // D: 3600
|
||||
|
||||
// In-Game Voice Communication System
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Modded Settings
|
||||
//******************************************************************************
|
||||
// set scr_xpscale "1"
|
||||
// set scr_fog_disable "1"
|
||||
// set jump_height "800"
|
||||
// set g_gravity "100"
|
||||
// set g_speed "350"
|
||||
// set bg_fallDamageMaxHeight "9999"
|
||||
// set bg_fallDamageMinHeight "9999"
|
||||
// set r_fullbright "1"
|
||||
// set player_sustainAmmo "1"
|
||||
// set cg_laserForceOn "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Misc Settings
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_compassShowEnemies "0"
|
||||
set g_deadChat "0"
|
||||
// set g_maxDroppedWeapons "16"
|
||||
// set g_redCrosshairs "0"
|
||||
// set scr_drawfriend "1"
|
||||
// ui_maxclients 32
|
||||
// ui_allowvote "1"
|
||||
// ui_allow_classchange "1"
|
||||
// ui_allow_controlschange "1"
|
||||
// ui_allow_teamchange "1"
|
||||
// ui_stat_headshots ""
|
||||
|
||||
set scr_friendlyfire "0"
|
||||
set scr_freelook "1"
|
||||
set scr_killcam "1"
|
||||
set scr_spectateenemy "1"
|
||||
set scr_allow_vote "1"
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Voting
|
||||
set g_allowVote "1"
|
||||
// set g_voteAbstainWeight "0.5"
|
||||
// g_allowVoteKick
|
||||
// g_allowVoteMap
|
||||
// g_allowVoteMapRestart
|
||||
// g_allowVoteMapRotate
|
||||
// g_allowVoteTempBanUser
|
||||
// g_allowVoteTypeMap
|
||||
// g_allowVoteDrawFriend
|
||||
// g_allowVoteFriendlyFire
|
||||
// g_allowVoteKillCam
|
||||
|
||||
// Gameplay
|
||||
set scr_game_allowkillcam 1
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 2
|
||||
set scr_game_forceuav 0
|
||||
|
||||
// Hardpoints
|
||||
set scr_game_hardpoints 1
|
||||
set scr_hardpoint_allowuav 1
|
||||
set scr_hardpoint_allowartillery 1
|
||||
set scr_hardpoint_allowhelicopter 1
|
||||
set scr_hardpoint_allowsupply 1
|
||||
|
||||
// Helicopter Settings
|
||||
// set scr_heli_armor 500
|
||||
// set scr_heli_armor_bulletdamage 0.3
|
||||
// set scr_heli_attract_range 4096
|
||||
// set scr_heli_attract_strength 1000
|
||||
// set scr_heli_hardpoint_interval 180
|
||||
// set scr_heli_health_degrade 0
|
||||
// set scr_heli_loopmax 1
|
||||
// set scr_heli_maxhealth 1100
|
||||
// set scr_heli_missile_engage_dist 2000
|
||||
// set scr_heli_missile_friendlycare 256
|
||||
// set scr_heli_missile_max 3
|
||||
// set scr_heli_missile_regen_time 10
|
||||
// set scr_heli_missile_rof 5
|
||||
// set scr_heli_missile_target_cone 0.3
|
||||
// set scr_heli_rage_missile 5
|
||||
// set scr_heli_target_recognition 0.5
|
||||
// set scr_heli_target_spawnprotection 5
|
||||
// set scr_heli_targeting_delay 0.5
|
||||
// set scr_heli_turret_engage_dist 1000
|
||||
// set scr_heli_turret_spinup_delay 0.75
|
||||
// set scr_heli_turretClipSize 40
|
||||
// set scr_heli_turretReloadTime 1.5
|
||||
// set scr_heli_visual_range 3500
|
||||
|
||||
// Teams
|
||||
set scr_team_fftype 0
|
||||
set scr_team_teamkillspawndelay 20
|
||||
set scr_team_kickteamkillers 0
|
||||
|
||||
// Player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// UI
|
||||
set scr_hardcore 1
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
//******************************************************************************
|
||||
// Perks
|
||||
//******************************************************************************
|
||||
set scr_game_perks 1
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
// set perk_armorVest 75
|
||||
// set perk_bulletDamage 40
|
||||
// set perk_explosiveDamage 25
|
||||
|
||||
//******************************************************************************
|
||||
// Class Limits
|
||||
//******************************************************************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//******************************************************************************
|
||||
// Class Team Options
|
||||
//******************************************************************************
|
||||
set allies_allow_assault 1
|
||||
set axis_allow_assault 1
|
||||
set allies_allow_specops 1
|
||||
set axis_allow_specops 1
|
||||
set allies_allow_heavygunner 1
|
||||
set axis_allow_heavygunner 1
|
||||
set allies_allow_demolitions 1
|
||||
set axis_allow_demolitions 1
|
||||
set allies_allow_sniper 1
|
||||
set axis_allow_sniper 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Specops Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Heavygunner Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Demolitions Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Move Speed
|
||||
//******************************************************************************
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
//******************************************************************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//******************************************************************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 1
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG
|
||||
//******************************************************************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotguns
|
||||
//******************************************************************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotgun Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG
|
||||
//******************************************************************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistols
|
||||
//******************************************************************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistol Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//******************************************************************************
|
||||
// Grenades / Explosives
|
||||
//******************************************************************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
// set scr_weapon_allowc4 1
|
||||
// set scr_weapon_allowclaymores 1
|
||||
// set scr_weapon_allowflash 1
|
||||
// set scr_weapon_allowfrags 1
|
||||
// set scr_weapon_allowmines 1
|
||||
// set scr_weapon_allowrpgs 1
|
||||
// set scr_weapon_allowsmoke 1
|
||||
|
||||
//******************************************************************************
|
||||
// Game Type Settings
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Free For All Deathmatch:
|
||||
//******************************************************************************
|
||||
set scr_dm_scorelimit 250
|
||||
// set scr_dm_timelimit
|
||||
// set scr_dm_numlives
|
||||
// set scr_dm_roundlimit
|
||||
set scr_dm_playerrespawndelay -9
|
||||
set scr_dm_waverespawndelay -9
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Domination:
|
||||
//******************************************************************************
|
||||
// set scr_dom_scorelimit
|
||||
// set scr_dom_timelimit
|
||||
// set scr_dom_numlives
|
||||
// set scr_dom_roundlimit
|
||||
// set scr_dom_playerrespawndelay
|
||||
// set scr_dom_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Headquarters:
|
||||
//******************************************************************************
|
||||
// set scr_koth_scorelimit
|
||||
// set scr_koth_timelimit
|
||||
// set scr_koth_numlives
|
||||
// set scr_koth_roundlimit
|
||||
// set scr_koth_roundswitch
|
||||
// set scr_koth_playerrespawndelay
|
||||
// set scr_koth_waverespawndelay
|
||||
// set koth_autodestroytime
|
||||
// set koth_kothmode
|
||||
// set koth_spawntime
|
||||
// set koth_delayPlayer 0
|
||||
// set koth_spawnDelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Sabotage:
|
||||
//******************************************************************************
|
||||
// set scr_sab_scorelimit
|
||||
// set scr_sab_timelimit
|
||||
// set scr_sab_numlives
|
||||
// set scr_sab_bombtimer
|
||||
// set scr_sab_defusetime
|
||||
// set scr_sab_hotpotato
|
||||
// set scr_sab_planttime
|
||||
// set scr_sab_roundlimit
|
||||
// set scr_sab_roundswitch
|
||||
// set scr_sab_playerrespawndelay 4
|
||||
// set scr_sab_waverespawndelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Search & Destroy
|
||||
//******************************************************************************
|
||||
set scr_sd_scorelimit 10
|
||||
// set scr_sd_timelimit
|
||||
// set scr_sd_numlives
|
||||
// set scr_sd_bombtimer
|
||||
// set scr_sd_defusetime
|
||||
// set scr_sd_multibomb
|
||||
// set scr_sd_planttime
|
||||
// set scr_sd_roundlimit
|
||||
// set scr_sd_roundswitch
|
||||
// set scr_sd_playerrespawndelay
|
||||
// set scr_sd_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Team Deathmatch :
|
||||
//******************************************************************************
|
||||
// set scr_war_scorelimit
|
||||
// set scr_war_timelimit
|
||||
// set scr_war_numlives
|
||||
// set scr_war_roundlimit
|
||||
set scr_war_playerrespawndelay 1
|
||||
set scr_war_waverespawndelay 0
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Map Names
|
||||
//******************************************************************************
|
||||
// ambush = mp_convoy
|
||||
// backlot = mp_backlot
|
||||
// bloc = mp_bloc
|
||||
// bog = mp_bog
|
||||
// countdown = mp_countdown
|
||||
// crash = mp_crash
|
||||
// crossfire = mp_crossfire
|
||||
// district = mp_citystreets
|
||||
// downpour = mp_farm
|
||||
// overgrown = mp_overgrown
|
||||
// pipeline = mp_pipeline
|
||||
// shipment = mp_shipment
|
||||
// showdown = mp_showdown
|
||||
// strike = mp_strike
|
||||
// vacant = mp_vacant
|
||||
// wet work = mp_cargoship
|
||||
// winter crash = mp_crash_snow
|
||||
// broadcast = mp_broadcast
|
||||
// creek = mp_creek
|
||||
// chinatown = mp_carentan
|
||||
// killhouse = mp_killhouse
|
||||
//******************************************************************************
|
||||
// mp_backlot mp_bloc mp_bog mp_broadcast mp_carentan mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crash_snow mp_creek mp_crossfire mp_farm mp_killhouse mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant
|
||||
// mp_broadcast mp_carentan mp_crash_snow mp_creek mp_killhouse
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Game Types
|
||||
//******************************************************************************
|
||||
// "dm" - Free For All Deathmatch
|
||||
// "dom" - Domination
|
||||
// "koth" - Headquarters
|
||||
// "sab" - Sabotage
|
||||
// "sd" - Search & Destroy
|
||||
// "war" - Team Deathmatch
|
||||
//******************************************************************************
|
||||
set g_gametype "war"
|
||||
|
||||
//******************************************************************************
|
||||
// Map Rotations
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_backlot gametype dm map mp_bloc gametype dm map mp_bog gametype dm map mp_cargoship gametype dm map mp_citystreets gametype dm map mp_convoy gametype dm map mp_countdown gametype dm map mp_crash gametype dm map mp_crossfire gametype dm map mp_farm gametype dm map mp_overgrown gametype dm map mp_pipeline gametype dm map mp_shipment gametype dm map mp_showdown gametype dm map mp_strike gametype dm map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH DEVMAP
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm devmap mp_backlot gametype dm devmap mp_bloc gametype dm devmap mp_bog gametype dm devmap mp_cargoship gametype dm devmap mp_citystreets gametype dm devmap mp_convoy gametype dm devmap mp_countdown gametype dm devmap mp_crash gametype dm devmap mp_crossfire gametype dm devmap mp_farm gametype dm devmap mp_overgrown gametype dm devmap mp_pipeline gametype dm devmap mp_shipment gametype dm devmap mp_showdown gametype dm devmap mp_strike gametype dm devmap mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DOM -- DOMINATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dom map mp_backlot gametype dom map mp_bloc gametype dom map mp_bog gametype dom map mp_cargoship gametype dom map mp_citystreets gametype dom map mp_convoy gametype dom map mp_countdown gametype dom map mp_crash gametype dom map mp_crossfire gametype dom map mp_farm gametype dom map mp_overgrown gametype dom map mp_pipeline gametype dom map mp_shipment gametype dom map mp_showdown gametype dom map mp_strike gametype dom map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// KOTH -- HEADQUARTERS
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SAB -- SABOTAGE
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY DEVMAP
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sd devmap mp_backlot gametype sd devmap mp_bloc gametype sd devmap mp_bog gametype sd devmap mp_cargoship gametype sd devmap mp_citystreets gametype sd devmap mp_convoy gametype sd devmap mp_countdown gametype sd devmap mp_crash gametype sd devmap mp_crossfire gametype sd devmap mp_farm gametype sd devmap mp_overgrown gametype sd devmap mp_pipeline gametype sd devmap mp_shipment gametype sd devmap mp_showdown gametype sd devmap mp_strike gametype sd devmap mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// WAR -- TEAM DEATHMATCH
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_shipment gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_broadcast gametype dom map mp_broadcast gametype koth map mp_broadcast gametype sab map mp_broadcast gametype sd map mp_broadcast gametype war map mp_broadcast"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- DEVMAP ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm devmap mp_broadcast gametype dom devmap mp_broadcast gametype koth devmap mp_broadcast gametype sab devmap mp_broadcast gametype sd devmap mp_broadcast gametype war devmap mp_broadcast"
|
|
@ -0,0 +1,659 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by RigorousSphinx
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server" // ^5$('*') ^2Hacked ^3/ ^1Modded ^5Rotation ^3Server
|
||||
sets _Admin "RigorousSphinx"
|
||||
// sets _Email "admin AT yoursite DOT com"
|
||||
// sets _Website "http://www.cod4boards.com"
|
||||
sets _Location "North Carolina, US"
|
||||
// sets _Vent ""
|
||||
// sets _Irc ""
|
||||
sets _Maps "CoD4 Stock"
|
||||
set scr_motd "^3Welcome to $('*') Modded Server. Enjoy!!"
|
||||
|
||||
//******************************************************************************
|
||||
// Load Mods
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// PeZBOT Mod
|
||||
//******************************************************************************
|
||||
// set fs_game "mods/PeZBOT"
|
||||
// sets _Mod "PeZBOT"
|
||||
// sets _ModVer "006p"
|
||||
// sets _ModUpdate "^3Right Now"
|
||||
// set svr_pezbots "5"
|
||||
// set svr_pezbots_team "autoassign"
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Init & Exec CFG Files
|
||||
//******************************************************************************
|
||||
// wait
|
||||
// exec test1.cfg
|
||||
// wait
|
||||
// exec test2.cfg
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0 = No Log, 1 = Buffered, 2 = Continuous, 3 = Append
|
||||
set logfile "1" // 0 = No Log, 1 = Log File Enabled
|
||||
set g_log "games_mp.log" // Name of log file, D: games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network Options
|
||||
// set net_ip "1.2.3.4" // Set your servers IP address
|
||||
// set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master Servers
|
||||
set sv_master1 "cod4master.activision.com"
|
||||
set sv_master2 "cod4authorize.activision.com"
|
||||
set sv_master3 "cod4master.infinityward.com"
|
||||
set sv_master3 "cod4update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "aag" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
set g_password ""
|
||||
|
||||
// Player Slots
|
||||
set sv_maxclients "24" // MAX server player slots, this is TOTAL player slots, D: 32
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, D: 0
|
||||
set sv_maxping "800" // MAX player ping on CONNECT, D: 350
|
||||
|
||||
// Client Download Settings, (0=off/1=on) Used for MODs and custom maps
|
||||
// set sv_allowdownload "1"
|
||||
// seta sv_wwwDownload "1"
|
||||
// seta sv_wwwBaseURL "http://www.xxx.xxx.xx"
|
||||
// seta sv_wwwDlDisconnected "1"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "5000"
|
||||
|
||||
// FPS
|
||||
// set sv_fps "20"
|
||||
|
||||
// Drop Inactive Players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// Anti Flooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "0"
|
||||
|
||||
// Anti Lag
|
||||
set g_antilag "1"
|
||||
set g_smoothClients "1"
|
||||
|
||||
// Temporary Ban Duration
|
||||
set sv_kickBanTime "120" // D: 3600
|
||||
|
||||
// In-Game Voice Communication System
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Modded Settings
|
||||
//******************************************************************************
|
||||
// set scr_xpscale "1"
|
||||
// set scr_fog_disable "1"
|
||||
// set jump_height "800"
|
||||
// set g_gravity "100"
|
||||
// set g_speed "350"
|
||||
// set bg_fallDamageMaxHeight "9999"
|
||||
// set bg_fallDamageMinHeight "9999"
|
||||
// set r_fullbright "1"
|
||||
// set player_sustainAmmo "1"
|
||||
// set cg_laserForceOn "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Misc Settings
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_compassShowEnemies "0"
|
||||
set g_deadChat "0"
|
||||
// set g_maxDroppedWeapons "16"
|
||||
// set g_redCrosshairs "0"
|
||||
// set scr_drawfriend "1"
|
||||
set g_allowVote "1"
|
||||
// set g_voteAbstainWeight "0.5"
|
||||
// ui_maxclients 32
|
||||
// ui_allowvote ""
|
||||
// ui_allow_classchange ""
|
||||
// ui_allow_controlschange ""
|
||||
// ui_allow_teamchange ""
|
||||
// ui_stat_headshots ""
|
||||
|
||||
// set scr_friendlyfire "1"
|
||||
// set scr_freelook "0"
|
||||
// set scr_killcam "0"
|
||||
// set scr_spectateenemy "0"
|
||||
// set scr_allow_vote "1"
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Gameplay
|
||||
set scr_game_allowkillcam 1
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 1
|
||||
set scr_game_forceuav 0
|
||||
|
||||
// Hardpoints
|
||||
set scr_game_hardpoints 1
|
||||
set scr_hardpoint_allowuav 1
|
||||
set scr_hardpoint_allowartillery 1
|
||||
set scr_hardpoint_allowhelicopter 1
|
||||
set scr_hardpoint_allowsupply 1
|
||||
|
||||
// Helicopter Settings
|
||||
// set scr_heli_armor 500
|
||||
// set scr_heli_armor_bulletdamage 0.3
|
||||
// set scr_heli_attract_range 4096
|
||||
// set scr_heli_attract_strength 1000
|
||||
// set scr_heli_hardpoint_interval 180
|
||||
// set scr_heli_health_degrade 0
|
||||
// set scr_heli_loopmax 1
|
||||
// set scr_heli_maxhealth 1100
|
||||
// set scr_heli_missile_engage_dist 2000
|
||||
// set scr_heli_missile_friendlycare 256
|
||||
// set scr_heli_missile_max 3
|
||||
// set scr_heli_missile_regen_time 10
|
||||
// set scr_heli_missile_rof 5
|
||||
// set scr_heli_missile_target_cone 0.3
|
||||
// set scr_heli_rage_missile 5
|
||||
// set scr_heli_target_recognition 0.5
|
||||
// set scr_heli_target_spawnprotection 5
|
||||
// set scr_heli_targeting_delay 0.5
|
||||
// set scr_heli_turret_engage_dist 1000
|
||||
// set scr_heli_turret_spinup_delay 0.75
|
||||
// set scr_heli_turretClipSize 40
|
||||
// set scr_heli_turretReloadTime 1.5
|
||||
// set scr_heli_visual_range 3500
|
||||
|
||||
// Teams
|
||||
set scr_team_fftype 0
|
||||
set scr_team_teamkillspawndelay 20
|
||||
set scr_team_kickteamkillers 0
|
||||
|
||||
// Player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// UI
|
||||
set scr_hardcore 1
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
//******************************************************************************
|
||||
// Perks
|
||||
//******************************************************************************
|
||||
set scr_game_perks 1
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
// set perk_armorVest 75
|
||||
// set perk_bulletDamage 40
|
||||
// set perk_explosiveDamage 25
|
||||
|
||||
//******************************************************************************
|
||||
// Class Limits
|
||||
//******************************************************************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//******************************************************************************
|
||||
// Class Team Options
|
||||
//******************************************************************************
|
||||
// set allies_allow_assault 1
|
||||
// set axis_allow_assault 1
|
||||
// set allies_allow_specops 1
|
||||
// set axis_allow_specops 1
|
||||
// set allies_allow_heavygunner 1
|
||||
// set axis_allow_heavygunner 1
|
||||
// set allies_allow_demolitions 1
|
||||
// set axis_allow_demolitions 1
|
||||
// set allies_allow_sniper 1
|
||||
// set axis_allow_sniper 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Specops Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Heavygunner Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Demolitions Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Class Default Loadout
|
||||
//******************************************************************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// Move Speed
|
||||
//******************************************************************************
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
//******************************************************************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//******************************************************************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 1
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG
|
||||
//******************************************************************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotguns
|
||||
//******************************************************************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotgun Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG
|
||||
//******************************************************************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistols
|
||||
//******************************************************************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistol Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//******************************************************************************
|
||||
// Grenades / Explosives
|
||||
//******************************************************************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
// set scr_weapon_allowc4 1
|
||||
// set scr_weapon_allowclaymores 1
|
||||
// set scr_weapon_allowflash 1
|
||||
// set scr_weapon_allowfrags 1
|
||||
// set scr_weapon_allowmines 1
|
||||
// set scr_weapon_allowrpgs 1
|
||||
// set scr_weapon_allowsmoke 1
|
||||
|
||||
//******************************************************************************
|
||||
// Game Type Settings
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Free For All Deathmatch:
|
||||
//******************************************************************************
|
||||
// set scr_dm_scorelimit
|
||||
// set scr_dm_timelimit
|
||||
// set scr_dm_numlives
|
||||
// set scr_dm_playerrespawndelay
|
||||
// set scr_dm_roundlimit
|
||||
// set scr_dm_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Domination:
|
||||
//******************************************************************************
|
||||
// set scr_dom_scorelimit
|
||||
// set scr_dom_timelimit
|
||||
// set scr_dom_numlives
|
||||
// set scr_dom_playerrespawndelay
|
||||
// set scr_dom_roundlimit
|
||||
// set scr_dom_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Headquarters:
|
||||
//******************************************************************************
|
||||
// set scr_koth_scorelimit
|
||||
// set scr_koth_timelimit
|
||||
// set scr_koth_numlives
|
||||
// set scr_koth_playerrespawndelay
|
||||
// set scr_koth_roundlimit
|
||||
// set scr_koth_roundswitch
|
||||
// set scr_koth_waverespawndelay
|
||||
// koth_autodestroytime
|
||||
// koth_kothmode
|
||||
// koth_spawntime
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Sabotage:
|
||||
//******************************************************************************
|
||||
// set scr_sab_scorelimit
|
||||
// set scr_sab_timelimit
|
||||
// set scr_sab_numlives
|
||||
// set scr_sab_bombtimer
|
||||
// set scr_sab_defusetime
|
||||
// set scr_sab_hotpotato
|
||||
// set scr_sab_planttime
|
||||
// set scr_sab_playerrespawndelay
|
||||
// set scr_sab_roundlimit
|
||||
// set scr_sab_roundswitch
|
||||
// set scr_sab_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Search & Destroy
|
||||
//******************************************************************************
|
||||
// set scr_sd_scrorelimit
|
||||
// set scr_sd_timelimit
|
||||
// set scr_sd_numlives
|
||||
// set scr_sd_bombtimer
|
||||
// set scr_sd_defusetime
|
||||
// set scr_sd_multibomb
|
||||
// set scr_sd_planttime
|
||||
// set scr_sd_playerrespawndelay
|
||||
// set scr_sd_roundlimit
|
||||
// set scr_sd_roundswitch
|
||||
// set scr_sd_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Team Deathmatch :
|
||||
//******************************************************************************
|
||||
// set scr_war_scorelimit
|
||||
// set scr_war_timelimit
|
||||
// set scr_war_numlives
|
||||
// set scr_war_playerrespawndelay
|
||||
// set scr_war_roundlimit
|
||||
// set scr_war_waverespawndelay
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Map Names
|
||||
//******************************************************************************
|
||||
// ambush = mp_convoy
|
||||
// backlot = mp_backlot
|
||||
// bloc = mp_bloc
|
||||
// bog = mp_bog
|
||||
// countdown = mp_countdown
|
||||
// crash = mp_crash
|
||||
// crossfire = mp_crossfire
|
||||
// district = mp_citystreets
|
||||
// downpour = mp_farm
|
||||
// overgrown = mp_overgrown
|
||||
// pipeline = mp_pipeline
|
||||
// shipment = mp_shipment
|
||||
// showdown = mp_showdown
|
||||
// strike = mp_strike
|
||||
// vacant = mp_vacant
|
||||
// wet work = mp_cargoship
|
||||
// winter crash = mp_crash_snow
|
||||
// broadcast = mp_broadcast
|
||||
// creek = mp_creek
|
||||
// chinatown = mp_carentan
|
||||
// killhouse = mp_killhouse
|
||||
//******************************************************************************
|
||||
// mp_backlot mp_bloc mp_bog mp_broadcast mp_carentan mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crash_snow mp_creek mp_crossfire mp_farm mp_killhouse mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant
|
||||
// mp_broadcast mp_carentan mp_crash_snow mp_creek mp_killhouse
|
||||
//******************************************************************************
|
||||
|
||||
//******************************************************************************
|
||||
// Game Types
|
||||
//******************************************************************************
|
||||
// "dm" - Free For All Deathmatch
|
||||
// "dom" - Domination
|
||||
// "koth" - Headquarters
|
||||
// "sab" - Sabotage
|
||||
// "sd" - Search & Destroy
|
||||
// "war" - Team Deathmatch
|
||||
//******************************************************************************
|
||||
set g_gametype "sd"
|
||||
|
||||
//******************************************************************************
|
||||
// Map Rotations
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_backlot gametype dm map mp_bloc gametype dm map mp_bog gametype dm map mp_cargoship gametype dm map mp_citystreets gametype dm map mp_convoy gametype dm map mp_countdown gametype dm map mp_crash gametype dm map mp_crossfire gametype dm map mp_farm gametype dm map mp_overgrown gametype dm map mp_pipeline gametype dm map mp_shipment gametype dm map mp_showdown gametype dm map mp_strike gametype dm map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH DEVMAP
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm devmap mp_backlot gametype dm devmap mp_bloc gametype dm devmap mp_bog gametype dm devmap mp_cargoship gametype dm devmap mp_citystreets gametype dm devmap mp_convoy gametype dm devmap mp_countdown gametype dm devmap mp_crash gametype dm devmap mp_crossfire gametype dm devmap mp_farm gametype dm devmap mp_overgrown gametype dm devmap mp_pipeline gametype dm devmap mp_shipment gametype dm devmap mp_showdown gametype dm devmap mp_strike gametype dm devmap mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DOM -- DOMINATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dom map mp_backlot gametype dom map mp_bloc gametype dom map mp_bog gametype dom map mp_cargoship gametype dom map mp_citystreets gametype dom map mp_convoy gametype dom map mp_countdown gametype dom map mp_crash gametype dom map mp_crossfire gametype dom map mp_farm gametype dom map mp_overgrown gametype dom map mp_pipeline gametype dom map mp_shipment gametype dom map mp_showdown gametype dom map mp_strike gametype dom map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// KOTH -- HEADQUARTERS
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SAB -- SABOTAGE
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY DEVMAP
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype sd devmap mp_backlot gametype sd devmap mp_bloc gametype sd devmap mp_bog gametype sd devmap mp_cargoship gametype sd devmap mp_citystreets gametype sd devmap mp_convoy gametype sd devmap mp_countdown gametype sd devmap mp_crash gametype sd devmap mp_crossfire gametype sd devmap mp_farm gametype sd devmap mp_overgrown gametype sd devmap mp_pipeline gametype sd devmap mp_shipment gametype sd devmap mp_showdown gametype sd devmap mp_strike gametype sd devmap mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// WAR -- TEAM DEATHMATCH
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_shipment gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm map mp_broadcast gametype dom map mp_broadcast gametype koth map mp_broadcast gametype sab map mp_broadcast gametype sd map mp_broadcast gametype war map mp_broadcast"
|
||||
|
||||
//******************************************************************************
|
||||
// BROADCAST -- DEVMAP ROTATION
|
||||
//******************************************************************************
|
||||
// set sv_mapRotation "gametype dm devmap mp_broadcast gametype dom devmap mp_broadcast gametype koth devmap mp_broadcast gametype sab devmap mp_broadcast gametype sd devmap mp_broadcast gametype war devmap mp_broadcast"
|
|
@ -0,0 +1,122 @@
|
|||
Alright here comes the second part of my tweaks and tips topic, here you will find many funny things to do such as changing the color of the name of your friends, changing the HUD, and even a special gift from me in the end !
|
||||
|
||||
- Binds :
|
||||
So here we will talk about the most common thing in cod4, binds. You can see it as a function dedicated to a key you have chosen. For instance you can swap your class, change your name, say something, ... with just one key !
|
||||
|
||||
To change your name with a key, just type in your cfg this line
|
||||
bind P "name seRvant . sabeR"
|
||||
|
||||
Of course change my name by yours, and every time you'll press this key your name will change accordingly. Now if like me you have many names you can't assign all the names to a key then type this
|
||||
bind M "toggle name "vKM <3" cura "Gae Bolg""
|
||||
|
||||
If there is a space in your name like vKM <3 for me you have to put it like this "vKM <3" for it to be considered as ONE name for the others you can just put space between your names
|
||||
bind P "toggle name Albert Rodolph Henry"
|
||||
|
||||
Each press of the key will change your name following the order of writing you did.
|
||||
Now, how to bind a sentence to a key, it should be useful for you admins to bind a key to say "Do not use ..., Respect the rules" for instance.
|
||||
bind L say "Enjoy your stay on the RvO server"
|
||||
|
||||
If you want to put colors in your sentences you have to put something like that before the word
|
||||
Do not use ^1Grenade-launchers (here Grenade-launchers will be RED), the colors are the following
|
||||
|
||||
^1 = red
|
||||
^2 = yellow
|
||||
^3 = green
|
||||
^4 = dark blue
|
||||
^5 = light blue
|
||||
^6 = pink
|
||||
^7 = white
|
||||
^8 = this one depends on which side you are (brown for spetz/opfor and grey for SAS/marines)
|
||||
^9 = grey
|
||||
^0 = black
|
||||
|
||||
Now something utterly useless yet pretty funny, when you knife someone it is possible to make it so that your character will say Sorry in the same time ^^. Here is the command
|
||||
bind MWHEELDOWN "+melee; wait; openscriptmenu quickresponses 4; wait; -melee"
|
||||
|
||||
Now your character will say "Sorry" while knifing the enemy. if you want to say something else
|
||||
"openScriptMenu quickcommands 1" // On Me!
|
||||
"openScriptMenu quickcommands 2" // Move In!
|
||||
"openScriptMenu quickstatements 1" // Contact!
|
||||
"openScriptMenu quickstatements 2" // Multiple Contacts!
|
||||
"openScriptMenu quickresponses 1" // Roger
|
||||
"openScriptMenu quickresponses 2" // Negative
|
||||
|
||||
Just replace the number with the sentence you want to say.
|
||||
|
||||
Now something I personally like, change my teammates name color. I hate that green like color so I created my own blue like the sky. However ... the color resets every time an event occur (like dropbomb, plant, new round, etc ..) so there is a little problem. We'll have to couple it with our most used key, I think for everyone it is the move forward one. Here is the command
|
||||
bind Z "+forward; g_teamColor_MyTeam 0.2 0.7 0.8 1; g_teamcolor_enemyteam "0.8 0.2 0.2 1"
|
||||
|
||||
Change the numbers if you don't like my color =), Now your teammates will have their names in a beautiful sky like blue and the enemy an evil red color. On a side note you will then be able to see them better than before !
|
||||
I think that's all for this part once again if i remember something I'll update this post.
|
||||
|
||||
-HUD/Radar :
|
||||
You can slightly change your compass/radar and you can make smaller/bigger icons, it improves your orientation and customize your game even more !
|
||||
|
||||
To change your friends icon on the compass you will need 2 commands
|
||||
seta compassFriendlyHeight "18.75"
|
||||
seta compassFriendlyWidth "18.75"
|
||||
|
||||
Change the numbers at your will. VERY IMPORTANT ! You cannot change your own icon it is now disallowed, dunno why but it can't be helped. You can be kicked from many servers if you try but you'll never get banned don't worry.The only things that could lead to a ban in your cfg are gamma binds and the burst fire script. the worse you could ever get is a kick on some servers.
|
||||
|
||||
Now to change the game's icons like Bomb site A/B in the game
|
||||
seta waypointiconwidth "13.37"
|
||||
seta waypointiconheight "13.37"
|
||||
|
||||
Same as above but for the compass
|
||||
seta compassObjectiveHeight "20" seta compassObjectiveWidth "20"
|
||||
|
||||
Now you got your own personalized interface.
|
||||
|
||||
-Scoreboard :
|
||||
This is something you can change to your pleasure, you can change everything in it and end with something like this
|
||||
http://forum.i3d.net/attachments/modifications-cod4/943160171d1235546192-cod4-modify-your-scoreboard-28095615.jpgSome
|
||||
|
||||
Some basic scoreboard commands
|
||||
seta cg_scoreboardMyColor "1 0.6 0 0"
|
||||
seta cg_scoreboardPingGraph "1"
|
||||
seta cg_ScoresPing_BgColor "0.25098 0.25098 0.25098 0.501961"
|
||||
seta cg_ScoresPing_HighColor "0.8 0 0 1"
|
||||
seta cg_ScoresPing_LowColor "1 0.2 0 1"
|
||||
seta cg_ScoresPing_MaxBars "4"
|
||||
seta cg_ScoresPing_MedColor "0.8 0.8 0 1"
|
||||
|
||||
ScoreboardMyColor will change the color of your name in the scoreboard
|
||||
Set PingGraph to "1" if you want a graphical representation of ping rather than numerical.
|
||||
MaxBars then allows you to specify how many vertical bars represent your ping.
|
||||
Bg = BackgroundHighColor = the color to represent high ping (e.g. red)
|
||||
LowColor = for low ping (e.g. green)
|
||||
MedColor = medium ping (e.g. yellow)
|
||||
|
||||
Sadly, just like your teammates name it resets after a while so we better bind it to the scoreboard key itself ! For me it is F4 so it will be this
|
||||
bind F4 "+scores;g_ScoresColor_Allies 0 0 0 1;g_ScoresColor_Axis 0 0 0 1;g_scorescolor_free 0 0 0 1;pb_sleep 500;g_teamname_axis ^8Defence^7;g_teamname_allies ^9Attack^7;g_teamColor_Allies 0.2 0.2 0.75 1;g_teamColor_Axis 0.75 0.2 0.2 1"
|
||||
|
||||
Do not be afraid by the size of the command, it includes all the scoreboard commands for me and i have something like that
|
||||
http://fr.xfire.com/profile/vergilslayer21/screenshots/?view#107059514
|
||||
|
||||
For instance if you want to change the promod like colors behind the player names like I did you will have to change those 3 things.
|
||||
g_ScoresColor_Allies 0 0 0 1
|
||||
g_ScoresColor_Axis 0 0 0 1
|
||||
g_scorescolor_free 0 0 0 1
|
||||
|
||||
Remember that it is in RGBA format. If you want to change the teams name just replace Attack and Defence by the names you want, you will be the only ones seeing it. You can rename them LOL FAG ARMY if you please. Just watchout for side switch you could be the guys under the LOL FAG ARMY at next round ^^.
|
||||
|
||||
That's all for the scoreboard (It is probably the most difficult thing to try so if you need any help ask me here or add me Xfire I'll do what I can)
|
||||
|
||||
-Others :
|
||||
Here are all the things i didn't know where to place, first change the place of your fps indicator (activated by cg_drawfps 1), I'm sorry but I don't remember the coordinates of the screen corners so you will have to test it yourself.
|
||||
seta cg_debugInfoCornerOffset "0 0" This is default
|
||||
|
||||
If you want to read only what your teammates are saying and not the enemy (rage, flame, ... multiple reasons) here is the command
|
||||
seta cg_teamChatsOnly 1
|
||||
|
||||
There are still so many things .. like put the chat box where you want and such, If you are interested in some other things just tell me I'll see if I can help.
|
||||
|
||||
Now my gift to you, have you ever dreamed you were superman ? Then on cod4 you can be him, on Strike at least. For those that don't know what I'm talking about you have to see this
|
||||
|
||||
It's pretty sick especially in clanwars when the enemy is trying to defuse and you just rape him from above he is like wtf aha. So I'll give you the binds that will allow you to do this ! However it is pretty difficult to learn it by yourselves that's why I would gladly show you how to do it.
|
||||
bind W ";+moveright; wait; wait; -moveright"
|
||||
bind < ";+moveleft; wait; wait; -moveleft"
|
||||
|
||||
With those binds you will be able to move 1 pixel to the right/left which is ESSENTIAL in order to do that glitch, ppl on youtube just say move slightly to the right/left .. It would take years to do it that way even the slightest press on left/right key is too much.
|
||||
|
||||
So here is the end of it ! I hope you learned some useful things, thanks for your patience, sorry for the english, and if you have trouble getting something to work just tell ! It was my pleasure.
|
|
@ -0,0 +1,16 @@
|
|||
Call of Duty 4 - Modern Warfare Console Commands
|
||||
By: RigorousSphinx
|
||||
###############################################
|
||||
UDP Ports: 20800, 20810, 28960
|
||||
|
||||
Startup Commands
|
||||
###############################################
|
||||
“C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe”
|
||||
+set dedicated 2 +set sv_punkbuster 1 +exec dedicated.cfg +map_rotate
|
||||
|
||||
Main Commands
|
||||
###############################################
|
||||
|
||||
Text Colors
|
||||
###############################################
|
||||
^1 = Red ^2 = Green ^3 = Yellow ^4 = Blue ^5 = Cyan ^6 = Magenta ^7 = White ^9 = Grey ^0 = Black
|
|
@ -0,0 +1,103 @@
|
|||
http://iwnation.com/forums/index.php?showtopic=29394
|
||||
|
||||
Here's a brief walk through on how to set up custom maps on your server. The info is mostly compiled from several other posts that can be found on this site with a little editing by me.
|
||||
|
||||
First off you have to run your custom map server as a modded server so that the clients can download your maps and files. Here's a brief tutorial on how to set up a modded server.
|
||||
|
||||
How to set up a modded server
|
||||
|
||||
1. Create a new folder in the COD4 'mods' folder (next to 'ModWarfare'). You can call it what you like. For illustration purposes, I will call mine 'awe4'. The entire path should look something like this:
|
||||
|
||||
C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\mods\awe4
|
||||
|
||||
This is your fs_game mods/folder. Remember to keep everything in lower case, as it avoids several quirks about the root path to fs_game.
|
||||
|
||||
So, in your command line you would add something like this:
|
||||
|
||||
+set fs_game mods/awe4
|
||||
|
||||
A forward slash and lower-case 'm' in mods. So the entire command line would look something like this:
|
||||
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe" +set dedicated 2 +set fs_game mods/awe4 +exec server.cfg +map_rotate
|
||||
|
||||
2. On your redirect space, create a root folder that you will use for all your servers. I will call mine 'cod4'. Inside this folder, create a folder called 'mods' (all lower case). Inside that create another folder named after your fs_game folder. I will call mine 'awe4'.
|
||||
|
||||
3. On your server, into the 'awe4' folder place your mod IWD. Mine is called 'z_awe4.iwd'. Also place in there mod.ff.
|
||||
|
||||
4. Copy those files from your server to your redirect space - i.e. z_awe4.iwd and mod.ff.
|
||||
|
||||
In your server config file, enter your redirect details. They are exactly the same as vCOD/UO/COD2.
|
||||
|
||||
Mine are:
|
||||
|
||||
set sv_allowdownload "1"
|
||||
set sv_wwwDownload 1
|
||||
set sv_wwwbaseURL "http://www.tallys-world.com/cod4/"
|
||||
set sv_wwwdldisconnected "0"
|
||||
|
||||
On previous versions of COD the disconnected setting could be a 1 but for now until IW puts out a fix for it leave this setting at 0.
|
||||
|
||||
Notice that you quote only up to the root of where you store your download files. As in previous COD titles, you dont have to quote the whole destination root directory url - the game will find mods/awe4 for you.
|
||||
|
||||
That should cover the basics on how to set up a mod and thanks to Tally for his original post on the subject. Now onto how to set up the custom maps.
|
||||
|
||||
Custom map setup information:
|
||||
|
||||
When you download a custom map from it's source you should find at least 3 files. The mp_mapname.ff, mp_mapnameload.ff and mp_mapname.iwd. The main map file is the mp_mapname.ff file.
|
||||
|
||||
To run the custom maps from your server you need to make a new folder called "usermaps". This folder is placed in your root directory where you have your game installed right next to the other folders such as Docs, main, miles and so on. It should look something like this:
|
||||
|
||||
C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\usermaps
|
||||
|
||||
Inside the usermaps folder each map should have it's own folder that's titled the name of the map. So it should look something like this:
|
||||
|
||||
C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\usermaps\mp_mapname
|
||||
|
||||
You then place the two ff files into this folder so the mp_mapname.ff and the mp_mapnameload.ff both go into this folder.
|
||||
|
||||
The mp_mapname.iwd goes into your fs_game mod folder along with the files from your mod so it goes along side of the mod.ff file, the cfg's and mod.iwd. At this point I will also add that you can combine your map iwd's into one iwd if you so wish. This keeps the number of downloads to your clients to a lower number.
|
||||
|
||||
Redirect setup for custom maps
|
||||
|
||||
The next thing to do is to create a new folder at your website where you are hosting your files. In your redirect directory you should already have a root folder with your fs_game folder inside it and your mod files inside that. In our case our root folder is called cod4. Inside that we have our mod folder called awe4. Along side of the mod folder you need to create a new folder called usermaps. You place a copy of your custom map folder containing the ff files inside this usermaps folder just like you did on your server. Then the mapname.iwd goes in your mod folder or in our case the Awe4 folder.
|
||||
|
||||
You should now have a root folder at your download site with two folders inside it. One is your mod or fs_game folder with your mod files and map.iwd's and the other is your usermaps folder with the individual map folders inside it and inside the map folders the two ff files.
|
||||
|
||||
Note that if you are getting errors from a new map that the map's iwd and mp_mapnameload.ff are not always needed to run the map in all cases. Try starting the server up with only the mp_mapname.ff file and let the mapmaker know that there is a potential issue.
|
||||
|
||||
Lastly you need to update your map rotation to run the new maps.
|
||||
|
||||
|
||||
Startup Configs
|
||||
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe"
|
||||
|
||||
+set dedicated 2 +set fs_game mods/awe4 +exec server.cfg +map_rotate
|
||||
+set dedicated 2 +map_rotate
|
||||
+set net_ip xxx.xxx.xxx.xxx
|
||||
+set net_port xxxxx
|
||||
+set fs_game mods/modwarfare
|
||||
+set dedicated 2 +set sv_punkbuster 1 +exec mp-server.cfg +map_rotate
|
||||
+set dedicated 2 +set sv_punkbuster 1 +set net_ip xxx.xxx.xxx.xxx +exec mp_server.cfg +map_rotate
|
||||
+set dedicated 2 +set sv_punkbuster 1 +exec server.cfg +map_rotate +set net__ip 10.0.0.1 +set net_port 28960
|
||||
+g_gametype koth +g_map mp_backlot
|
||||
|
||||
|
||||
Saved Server Startup Configs
|
||||
=============================================
|
||||
|
||||
COD4 Server
|
||||
---------------------------------------------
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe" +set dedicated 2 +exec server.cfg +devmap mp_broadcast
|
||||
|
||||
COD4 Server AWE4
|
||||
---------------------------------------------
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe" +set dedicated 2 +exec server.cfg +devmap mp_broadcast +set fs_game "mods/awe4"
|
||||
|
||||
COD4 Server PeZBOT
|
||||
---------------------------------------------
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe" +set dedicated 2 +exec server.cfg +devmap mp_broadcast +set fs_game "mods/PeZBOT" +set svr_pezbots 10 +set svr_pezbots_team "autoassign"
|
||||
|
||||
COD4 Server ROTU
|
||||
---------------------------------------------
|
||||
"C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\iw3mp.exe" +set dedicated 2 +exec server.cfg +map mp_surv_samsite +set fs_game "mods/reignoftheundead"
|
|
@ -0,0 +1,132 @@
|
|||
Call of Duty 4 Dedicated Server Guide
|
||||
|
||||
Required Ports
|
||||
-----
|
||||
UDP 20800
|
||||
UDP 20810
|
||||
UDP 28960
|
||||
|
||||
starting a dedicated server
|
||||
----------------------------
|
||||
LAN server
|
||||
] iw3mp.exe +set dedicated 1
|
||||
|
||||
Internet server
|
||||
] iw3mp.exe +set dedicated 2
|
||||
|
||||
Modded server
|
||||
] iw3mp.exe +set dedicated [1,2] +set fs_game "mods/<modname>"
|
||||
|
||||
start map
|
||||
] map <mapname>
|
||||
|
||||
example usage:
|
||||
] iw3mp.exe +set dedicated 2 +exec my_server.cfg +map mp_crash
|
||||
|
||||
my_server.cfg contains customized settings which are detailed below.
|
||||
syntax: set <dvar> <value>
|
||||
|
||||
server commands
|
||||
---------------
|
||||
] killserver
|
||||
] quit
|
||||
] map_restart
|
||||
] say "my message"
|
||||
] tell [clientnum] "my message to you"
|
||||
|
||||
server settings
|
||||
--------------
|
||||
map rotation
|
||||
] sv_mapRotation gametype <gametype> map <mapname> gametype <gametype> map <mapname> ...
|
||||
|
||||
<gametype> is one of:
|
||||
"dm" - free for all deathmatch
|
||||
"dom" - domination
|
||||
"koth" - headquarters
|
||||
"sab" - sabotage
|
||||
"sd" - search & destroy
|
||||
"war" - team deathmatch
|
||||
|
||||
] sv_hostname "my server"
|
||||
] g_gametype <gametype>
|
||||
] sv_maxclients [1-32]
|
||||
] g_password "my password"
|
||||
] sv_voice [0-1]
|
||||
] scr_teambalance [0-1]
|
||||
] g_allowvote [0-1]
|
||||
] sv_punkbuster [0-1]
|
||||
] sv_minping [0-n] (milliseconds)
|
||||
] sv_maxping [0-n] (milliseconds)
|
||||
] sv_connectTimeout [0-n] (seconds)
|
||||
] sv_timeout [0-n] (seconds)
|
||||
|
||||
gameplay options
|
||||
----------------
|
||||
] scr_oldschool [0-1]
|
||||
] scr_hardcore [0-1]
|
||||
] scr_game_spectatetype [0-2] (Disabled, Team/Players Only, Free)
|
||||
] scr_game_allowkillcam [0-1]
|
||||
] scr_team_fftype [0-3] (Disabled, Enabled, Reflect, Shared)
|
||||
|
||||
] scr_game_perks [0-1]
|
||||
] scr_game_onlyheadshots [0-1]
|
||||
] scr_game_forceuav [0-1]
|
||||
] scr_game_hardpoints [0-1] (i.e. artillery, uav, helicopter)
|
||||
] scr_hardpoint_allowartillery [0-1]
|
||||
] scr_hardpoint_allowuav [0-1]
|
||||
] scr_hardpoint_allowhelicopter [0-1]
|
||||
|
||||
free for all deathmatch
|
||||
-----------------------
|
||||
] scr_dm_scorelimit [0-n]
|
||||
] scr_dm_timelimit [0-n] (minutes)
|
||||
|
||||
domination
|
||||
-----------
|
||||
] scr_dom_scorelimit [0-n]
|
||||
] scr_dom_timelimit [0-n] (minutes)
|
||||
|
||||
team deathmatch
|
||||
-----------------
|
||||
] scr_war_scorelimit [0-n]
|
||||
] scr_war_timelimit [0-n] (minutes)
|
||||
|
||||
sabotage
|
||||
---------
|
||||
] scr_sab_scorelimit [1-n] (points)
|
||||
] scr_sab_timelimit [0-n] (minutes)
|
||||
] scr_sab_roundswitch [0-n] (after how many rounds)
|
||||
] scr_sab_bombtimer [0-n] (seconds)
|
||||
] scr_sab_planttime [0-n] (seconds)
|
||||
] scr_sab_defusetime [0-n] (seconds)
|
||||
] scr_sab_hotpotato [0-1] (shared bomb timer)
|
||||
|
||||
search and destroy
|
||||
-------------------
|
||||
] scr_sd_scorelimit [1-n] (points)
|
||||
] scr_sd_timelimit [0-n] (minutes)
|
||||
] scr_sd_roundswitch [0-n] (number of rounds before switching teams)
|
||||
] scr_sd_bombtimer [0-n] (seconds)
|
||||
] scr_sd_planttime [0-n] (seconds)
|
||||
] scr_sd_defusetime [0-n] (seconds)
|
||||
] scr_sd_multibomb [0-1]
|
||||
|
||||
headquarters
|
||||
-------------
|
||||
] scr_koth_scorelimit [1-n] (points)
|
||||
] scr_koth_timelimit [0-n] (minutes)
|
||||
] koth_autodestroytime [0-n] (seconds)
|
||||
] koth_kothmode [0-1] (classic mode, non-classic)
|
||||
] koth_spawntime [0-n] (seconds, hq spawn time)
|
||||
|
||||
|
||||
Fixing 1.6 Patch SV_Cheats Exploit
|
||||
-------------
|
||||
pb_sv_cvar sv_cheats IN 0
|
||||
some say this needs to be set in cod4/pb/pbsv.cfg file
|
||||
|
||||
Browsing around has me finding references to creating the pbsv.cfg file:
|
||||
|
||||
When in game, log into rcon and type "/rcon pb_sv_writecfg"
|
||||
|
||||
The pbsv.cfg file should now be in the pb folder on the INX server. Note that the pb folder is hidden by default so you may need to go hunting for it with your ftp client.
|
|
@ -0,0 +1,81 @@
|
|||
// Gametype Settings
|
||||
|
||||
// King of the Hill
|
||||
|
||||
set koth_autodestroytime "60"
|
||||
set koth_capturetime "20"
|
||||
set koth_delayPlayer "0"
|
||||
set koth_destroytime "10"
|
||||
set koth_kothmode "0"
|
||||
set koth_spawnDelay "60"
|
||||
set koth_spawntime "0"
|
||||
set scr_koth_numlives "0"
|
||||
set scr_koth_playerrespawndelay "1"
|
||||
set scr_koth_roundlimit "1"
|
||||
set scr_koth_roundswitch "1"
|
||||
set scr_koth_scorelimit "350"
|
||||
set scr_koth_timelimit "15"
|
||||
set scr_koth_waverespawndelay "0"
|
||||
|
||||
// Death Match
|
||||
|
||||
set scr_dm_numlives "0"
|
||||
set scr_dm_playerrespawndelay "1"
|
||||
set scr_dm_roundlimit "1"
|
||||
set scr_dm_scorelimit "0"
|
||||
set scr_dm_timelimit "15"
|
||||
set scr_dm_waverespawndelay "0"
|
||||
|
||||
// Domination
|
||||
|
||||
set scr_dom_numlives "0"
|
||||
set scr_dom_playerrespawndelay "1"
|
||||
set scr_dom_roundlimit "1"
|
||||
set scr_dom_scorelimit "200"
|
||||
set scr_dom_timelimit "0"
|
||||
set scr_dom_waverespawndelay "0"
|
||||
|
||||
// Sabotoge
|
||||
|
||||
set scr_sab_bombtimer "30"
|
||||
set scr_sab_defusetime "5"
|
||||
set scr_sab_hotpotato "0"
|
||||
set scr_sab_numlives "0"
|
||||
set scr_sab_planttime "2.5"
|
||||
set scr_sab_playerrespawndelay "7"
|
||||
set scr_sab_roundlimit "0"
|
||||
set scr_sab_roundswitch "1"
|
||||
set scr_sab_scorelimit "3"
|
||||
set scr_sab_timelimit "5"
|
||||
set scr_sab_waverespawndelay "0"
|
||||
|
||||
// Search & Destroy
|
||||
|
||||
set scr_sd_bombtimer "60"
|
||||
set scr_sd_defusetime "7"
|
||||
set scr_sd_multibomb "0"
|
||||
set scr_sd_numlives "1"
|
||||
set scr_sd_planttime "7"
|
||||
set scr_sd_playerrespawndelay "0"
|
||||
set scr_sd_roundlimit "0"
|
||||
set scr_sd_roundswitch "2"
|
||||
set scr_sd_scorelimit "5"
|
||||
set scr_sd_timelimit "3"
|
||||
set scr_sd_waverespawndelay "0"
|
||||
|
||||
// War
|
||||
|
||||
set scr_war_numlives "0"
|
||||
set scr_war_playerrespawndelay "1"
|
||||
set scr_war_roundlimit "1"
|
||||
set scr_war_scorelimit "0"
|
||||
set scr_war_timelimit "15"
|
||||
set scr_war_waverespawndelay "0"
|
||||
|
||||
direct respawn in hardcore...
|
||||
|
||||
set scr_war_playerrespawndelay -9
|
||||
set scr_war_waverespawndelay -9
|
||||
|
||||
set scr_dm_playerrespawndelay -9
|
||||
set scr_dm_waverespawndelay -9
|
|
@ -0,0 +1,668 @@
|
|||
if you cant use cheats you are a dumb motherfucker you have to put a cheat in like this…….(`) to open console then ex. “/god” (godmode) make sure you have the / in front of the code here is alot more codes……
|
||||
|
||||
/rcon login (password) ~ Replace password with the rcon pass without brackets.
|
||||
|
||||
Kick/ban/msg players:
|
||||
|
||||
/status ~ Displays information for all connected players in the server.
|
||||
|
||||
/tell (player id) ~ Sends a message to a specific player in the server via console (the message will appear next to the name ‘console’).
|
||||
|
||||
/clientkick (player id) ~ Kicks a specific player from the server.
|
||||
|
||||
/kick (player name) ~ Kicks a player from the server except instead of using the id to identify the player you need to instead type out the players name (colours included).
|
||||
|
||||
/banclient (player id) ~ Bans specific player from the server.
|
||||
|
||||
/banuser (player name) ~ Bans player by name not id.
|
||||
|
||||
/tempbanClient (player id) ~ Temporarily bans a player.
|
||||
|
||||
/tempbanUser (player name) ~ Same as above just by name not id.
|
||||
|
||||
/unbanuser (player name) ~ Unbans a user by name *note* the easiest way to unban a player is to delete the players name from ban.txt which can be found in the server files located in the server’s FTP.
|
||||
|
||||
Changing the map:
|
||||
|
||||
/map (map name) ~ Type in the map name you want without the brackets. Some of the map names used are different to the console command names. To make things easier here is a list of map names:
|
||||
|
||||
mp_backlot
|
||||
mp_bloc
|
||||
mp_bog
|
||||
mp_cargoship
|
||||
mp_citystreets
|
||||
mp_convoy
|
||||
mp_countdown
|
||||
mp_crash
|
||||
mp_crossfire
|
||||
mp_farm
|
||||
mp_overgrown
|
||||
mp_pipeline
|
||||
mp_shipment
|
||||
|
||||
/map_rotate ~ Loads the next map in rotation.
|
||||
|
||||
/map_restart ~ Restarts the current map.
|
||||
|
||||
/fast_restart ~ Restarts the map without loading.
|
||||
|
||||
Restarting server:
|
||||
|
||||
/killserver ~ Shuts the server down.
|
||||
|
||||
/Quit ~ Restarts the server.
|
||||
|
||||
The above is just a list of the most common commands you will need to know as a server admin. There are however alot more commands than this. Maybe in another post i’ll list those too.
|
||||
|
||||
*EDIT* Remember to type /rcon before each command and not the command by itself. E.G /rcon map_restart
|
||||
|
||||
Server Mode:
|
||||
|
||||
set scr_hardcore ~ Player’s HUD is limited, bullet damage is higher, friendly fire is on.
|
||||
|
||||
set scr_oldschool ~ No classes. Weapons are pickups, health is in a gauge form and can be increased with medipacks also jumps are higher.
|
||||
|
||||
set scr_oldschool_mw ~ Same as above, just for modded servers?
|
||||
|
||||
Spectator permissions:
|
||||
|
||||
set scr_game_spectatetype ~ Toggle spectating type.
|
||||
set g_deadChat ~ Toggle dead chat.
|
||||
|
||||
Search and Destroy (sd) (scroll down to see explanations):
|
||||
|
||||
set scr_sd_bombtimer
|
||||
set scr_sd_defusetime
|
||||
set scr_sd_multibomb
|
||||
set scr_sd_numlives
|
||||
set scr_sd_planttime
|
||||
set scr_sd_playerrespawndelay
|
||||
set scr_sd_roundlimit
|
||||
set scr_sd_roundswitch
|
||||
set scr_sd_scrorelimit
|
||||
set scr_sd_timelimit
|
||||
set scr_sd_waverespawndelay
|
||||
|
||||
Domination (dom):
|
||||
|
||||
set scr_dom_numlives
|
||||
set scr_dom_playerrespawndelay
|
||||
set scr_dom_roundlimit
|
||||
set scr_dom_scorelimit
|
||||
set scr_dom_timelimit
|
||||
set scr_dom_waverespawndelay
|
||||
|
||||
Sabotage (sab):
|
||||
|
||||
set scr_sab_bombtimer
|
||||
set scr_sab_defusetime
|
||||
set scr_sab_hotpotato
|
||||
set scr_sab_numlives
|
||||
set scr_sab_planttime
|
||||
set scr_sab_playerrespawndelay
|
||||
set scr_sab_roundlimit
|
||||
set scr_sab_roundswitch
|
||||
set scr_sab_scorelimit
|
||||
set scr_sab_timelimit
|
||||
set scr_sab_waverespawndelay
|
||||
|
||||
Tdm (war) :
|
||||
|
||||
set scr_war_numlives
|
||||
set scr_war_playerrespawndelay
|
||||
set scr_war_roundlimit
|
||||
set scr_war_scorelimit
|
||||
set scr_war_timelimit
|
||||
set scr_war_waverespawndelay
|
||||
|
||||
HQ (koth) :
|
||||
|
||||
set scr_koth_numlives
|
||||
set scr_koth_playerrespawndelay
|
||||
set scr_koth_roundlimit
|
||||
set scr_koth_roundswitch
|
||||
set scr_koth_scorelimit
|
||||
set scr_koth_timelimit
|
||||
set scr_koth_waverespawndelay
|
||||
|
||||
Capture The Flag (ctf) :
|
||||
|
||||
(not available yet)
|
||||
|
||||
set scr_ctf_numlives
|
||||
set scr_ctf_playerrespawndelay
|
||||
set scr_ctf_roundlimit
|
||||
set scr_ctf_roundswitch
|
||||
set scr_ctf_scorelimit
|
||||
set scr_ctf_timelimit
|
||||
set scr_ctf_waverespawndelay
|
||||
|
||||
Deathmatch – Free for all (dm) :
|
||||
|
||||
set scr_dm_numlives
|
||||
set scr_dm_playerrespawndelay
|
||||
set scr_dm_roundlimit
|
||||
set scr_dm_scorelimit
|
||||
set scr_dm_timelimit
|
||||
set scr_dm_waverespawndelay
|
||||
|
||||
Explanations :
|
||||
|
||||
bombtimer ~ Sets how long until the bomb will blow.
|
||||
defusetime ~ How long it takes to defuse the bomb after its planted.
|
||||
multibomb ~ Allows everyone on the attacking side to be armed with a bomb.
|
||||
numlives ~ Sets the number of lives.
|
||||
planttime ~ How long it takes to plant the bomb.
|
||||
playerrespawndelay ~ Time to respawn after dying.
|
||||
roundlimit ~ sets the round limit on each map.
|
||||
roundswitch ~ The round at which players will switch sides.
|
||||
scrorelimit ~ Sets the score limit.
|
||||
timelimit ~ Sets the time limit for the map.
|
||||
waverespawndelay ~ Disable delay in respawn time.
|
||||
|
||||
//
|
||||
// Punkbuster
|
||||
seta sv_punkbuster “1?
|
||||
wait
|
||||
pb_sv_enable
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Server Name, MoTD, Passwords, and Clients
|
||||
set sv_hostname “”
|
||||
set g_motd “”
|
||||
set scr_motd “”
|
||||
|
||||
set rcon_password “”
|
||||
|
||||
set sv_privateClients “0?
|
||||
set sv_privatePassword “”
|
||||
|
||||
set g_password “”
|
||||
|
||||
set sv_maxclients “16?
|
||||
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Map Rotation
|
||||
set g_gametype “war”
|
||||
set sv_mapRotation “map mp_backlot map mp_bloc map mp_bog map mp_cargoship map mp_citystreets map mp_convoy map mp_countdown map mp_crash map mp_crossfire map mp_farm map mp_overgrown map mp_pipeline map mp_showdown map mp_strike map mp_vacant”
|
||||
set sv_mapRotationCurrent “”
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Logging
|
||||
set logfile 0
|
||||
set g_log “games_mp.log”
|
||||
set g_logSync “0?
|
||||
set developer “0?
|
||||
set loc_warnings “0?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Server Personality
|
||||
//
|
||||
// Mode
|
||||
set scr_hardcore “0?
|
||||
set scr_oldschool “0?
|
||||
set scr_oldschool_mw “0?
|
||||
|
||||
set scr_game_onlyheadshots “0?
|
||||
set scr_game_forceuav “0?
|
||||
|
||||
set sv_fps “20? //
|
||||
set sv_pure “1?
|
||||
|
||||
// Anti-Lag efforts
|
||||
set g_antilag “1?
|
||||
set g_smoothClients “1?
|
||||
|
||||
// Friendly Fire
|
||||
set scr_drawfriend “1?
|
||||
set scr_team_fftype “1?
|
||||
|
||||
// Team Killing
|
||||
set scr_team_teamkillpointloss “2?
|
||||
set scr_team_teamkillspawndelay “25?
|
||||
set scr_team_kickteamkillers “1?
|
||||
set scr_teamKillPunishCount “3?
|
||||
|
||||
// Spectator Permissions
|
||||
set scr_game_spectatetype “1?
|
||||
set g_deadChat “0?
|
||||
|
||||
// Player Settings
|
||||
set scr_player_numlives “0?
|
||||
set scr_player_forcerespawn “1?
|
||||
set scr_player_respawndelay “0?
|
||||
|
||||
set scr_game_deathpointloss “0?
|
||||
set scr_game_suicidepointloss “0?
|
||||
set scr_player_suicidespawndelay “0?
|
||||
|
||||
set scr_player_maxhealth “100?
|
||||
set scr_player_healthregentime “5?
|
||||
|
||||
set scr_player_sprinttime “4?
|
||||
set g_speed “190?
|
||||
|
||||
set scr_xpscale “1?
|
||||
|
||||
// Team Settings
|
||||
set scr_teambalance “1?
|
||||
set scr_team_respawntime “0?
|
||||
|
||||
// Kill Cam
|
||||
set scr_game_allowkillcam “1?
|
||||
|
||||
// Game Timers
|
||||
set scr_game_graceperiod “15?
|
||||
set scr_game_matchstarttime “15?
|
||||
set scr_game_playerwaittime “20?
|
||||
|
||||
// HUD and Environmental Stuff
|
||||
set g_gravity “800?
|
||||
set g_redCrosshairs “0?
|
||||
set scr_enable_hiticon “1?
|
||||
set scr_enable_music “0?
|
||||
set scr_enable_scoretext “1?
|
||||
set scr_fog_disable “1?
|
||||
set g_maxDroppedWeapons “16?
|
||||
|
||||
// Client Issues
|
||||
set sv_maxPing “255?
|
||||
set sv_maxRate “25000?
|
||||
set sv_minPing “0?
|
||||
set sv_reconnectlimit “3?
|
||||
set g_inactivity “0?
|
||||
|
||||
set g_banIPs “”
|
||||
set sv_kickBanTime “300?
|
||||
|
||||
set sv_disableClientConsole “0?
|
||||
|
||||
// Ragdolls – Not known if these are used in MP!!
|
||||
set ragdoll_enable “1?
|
||||
set ragdoll_max_simulating “16?
|
||||
/////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Voting
|
||||
set g_allowVote “0?
|
||||
set g_voteAbstainWeight “0.5?
|
||||
set g_oldVoting “1? // Unknown what it does, but obviously goes here
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Voice Comms
|
||||
set sv_voice “1?
|
||||
|
||||
set sv_voiceQuality “3?
|
||||
set voice_deadChat “0?
|
||||
set voice_global “0?
|
||||
set voice_localEcho “0?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Downloads Settings
|
||||
set sv_allowDownload “1?
|
||||
set sv_wwwBaseURL “”
|
||||
set sv_wwwDlDisconnected “0?
|
||||
set sv_wwwDownload “0?
|
||||
////////////////////////////////////////////
|
||||
/////////////////////////////////////////////
|
||||
//
|
||||
// Gametype Settings
|
||||
//
|
||||
// King of the Hill
|
||||
set koth_autodestroytime “60?
|
||||
set koth_capturetime “20?
|
||||
set koth_delayPlayer “0?
|
||||
set koth_destroytime “10?
|
||||
set koth_kothmode “0?
|
||||
set koth_spawnDelay “60?
|
||||
set koth_spawntime “0?
|
||||
set scr_koth_numlives “0?
|
||||
set scr_koth_playerrespawndelay “0?
|
||||
set scr_koth_roundlimit “1?
|
||||
set scr_koth_roundswitch “1?
|
||||
set scr_koth_scorelimit “250?
|
||||
set scr_koth_timelimit “15?
|
||||
set scr_koth_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Death Match
|
||||
set scr_dm_numlives “0?
|
||||
set scr_dm_playerrespawndelay “0?
|
||||
set scr_dm_roundlimit “1?
|
||||
set scr_dm_scorelimit “250?
|
||||
set scr_dm_timelimit “12?
|
||||
set scr_dm_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Domination
|
||||
set scr_dom_numlives “0?
|
||||
set scr_dom_playerrespawndelay “0?
|
||||
set scr_dom_roundlimit “1?
|
||||
set scr_dom_scorelimit “200?
|
||||
set scr_dom_timelimit “0?
|
||||
set scr_dom_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Sabotoge
|
||||
set scr_sab_bombtimer “30?
|
||||
set scr_sab_defusetime “5?
|
||||
set scr_sab_hotpotato “0?
|
||||
set scr_sab_numlives “0?
|
||||
set scr_sab_planttime “2.5?
|
||||
set scr_sab_playerrespawndelay “7.5?
|
||||
set scr_sab_roundlimit “0?
|
||||
set scr_sab_roundswitch “1?
|
||||
set scr_sab_scorelimit “1?
|
||||
set scr_sab_timelimit “20?
|
||||
set scr_sab_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Search & Destroy
|
||||
set scr_sd_bombtimer “50?
|
||||
set scr_sd_defusetime “5?
|
||||
set scr_sd_multibomb “0?
|
||||
set scr_sd_numlives “1?
|
||||
set scr_sd_planttime “5?
|
||||
set scr_sd_playerrespawndelay “0?
|
||||
set scr_sd_roundlimit “0?
|
||||
set scr_sd_roundswitch “5?
|
||||
set scr_sd_scorelimit “6?
|
||||
set scr_sd_timelimit “2.5?
|
||||
set scr_sd_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// War
|
||||
set scr_war_numlives “0?
|
||||
set scr_war_playerrespawndelay “7?
|
||||
set scr_war_roundlimit “1?
|
||||
set scr_war_scorelimit “1000?
|
||||
set scr_war_timelimit “10?
|
||||
set scr_war_waverespawndelay “0?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Capture the Flag (not available yet)
|
||||
set scr_ctf_numlives “0?
|
||||
set scr_ctf_playerrespawndelay “0?
|
||||
set scr_ctf_roundlimit “2?
|
||||
set scr_ctf_roundswitch “1?
|
||||
set scr_ctf_scorelimit “10?
|
||||
set scr_ctf_timelimit “5?
|
||||
set scr_ctf_waverespawndelay “15?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Perks
|
||||
//
|
||||
set scr_game_perks “1?
|
||||
|
||||
set perk_allow_c4_mp “1?
|
||||
set perk_allow_claymore_mp “1?
|
||||
set perk_allow_rpg_mp “1?
|
||||
set perk_allow_specialty_armorvest “1?
|
||||
set perk_allow_specialty_bulletaccuracy “1?
|
||||
set perk_allow_specialty_bulletdamage “1?
|
||||
set perk_allow_specialty_bulletpenetration “1?
|
||||
set perk_allow_specialty_detectexplosive “1?
|
||||
set perk_allow_specialty_explosivedamage “1?
|
||||
set perk_allow_specialty_extraammo “1?
|
||||
set perk_allow_specialty_fastreload “1?
|
||||
set perk_allow_specialty_fraggrenade “1?
|
||||
set perk_allow_specialty_gpsjammer “1?
|
||||
set perk_allow_specialty_grenadepulldeath “1?
|
||||
set perk_allow_specialty_holdbreath “1?
|
||||
set perk_allow_specialty_longersprint “1?
|
||||
set perk_allow_specialty_parabolic “1?
|
||||
set perk_allow_specialty_pistoldeath “1?
|
||||
set perk_allow_specialty_quieter “1?
|
||||
set perk_allow_specialty_rof “1?
|
||||
set perk_allow_specialty_specialgrenade “1?
|
||||
set perk_armorVest “75?
|
||||
set perk_bulletDamage “40?
|
||||
set perk_explosiveDamage “25?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Harpoints
|
||||
//
|
||||
set scr_game_hardpoints “1?
|
||||
|
||||
set scr_hardpoint_allowartillery “1?
|
||||
set scr_hardpoint_allowhelicopter “1?
|
||||
set scr_hardpoint_allowsupply “1?
|
||||
set scr_hardpoint_allowuav “1?
|
||||
|
||||
// Helicopter Settings
|
||||
set scr_heli_armor “500?
|
||||
set scr_heli_armor_bulletdamage “0.3?
|
||||
set scr_heli_attract_range “4096?
|
||||
set scr_heli_attract_strength “1000?
|
||||
set scr_heli_hardpoint_interval “180?
|
||||
set scr_heli_health_degrade “0?
|
||||
set scr_heli_loopmax “1?
|
||||
set scr_heli_maxhealth “1100?
|
||||
set scr_heli_missile_engage_dist “2000?
|
||||
set scr_heli_missile_friendlycare “256?
|
||||
set scr_heli_missile_max “3?
|
||||
set scr_heli_missile_regen_time “10?
|
||||
set scr_heli_missile_rof “5?
|
||||
set scr_heli_missile_target_cone “0.3?
|
||||
set scr_heli_rage_missile “5?
|
||||
set scr_heli_target_recognition “0.5?
|
||||
set scr_heli_target_spawnprotection “5?
|
||||
set scr_heli_targeting_delay “0.5?
|
||||
set scr_heli_turret_engage_dist “1000?
|
||||
set scr_heli_turret_spinup_delay “0.75?
|
||||
set scr_heli_turretClipSize “40?
|
||||
set scr_heli_turretReloadTime “1.5?
|
||||
set scr_heli_visual_range “3500?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Classes
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Assault Class Options
|
||||
set allies_allow_assault “1?
|
||||
set axis_allow_assault “1?
|
||||
|
||||
set class_assault_allowdrop “1?
|
||||
set class_assault_camo “camo_none”
|
||||
set class_assault_frags “1?
|
||||
set class_assault_grenade “concussion_grenade”
|
||||
set class_assault_limit “64?
|
||||
set class_assault_movespeed “0.95?
|
||||
set class_assault_perk1 “specialty_null”
|
||||
set class_assault_perk2 “specialty_bulletdamage”
|
||||
set class_assault_perk3 “specialty_longersprint”
|
||||
set class_assault_primary “m16?
|
||||
set class_assault_primary_attachment “gl”
|
||||
set class_assault_secondary “beretta”
|
||||
set class_assault_secondary_attachment “none”
|
||||
set class_assault_special “1?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Demolitions Class Options
|
||||
set allies_allow_demolitions “1?
|
||||
set axis_allow_demolitions “1?
|
||||
|
||||
set class_demolitions_allowdrop “1?
|
||||
set class_demolitions_camo “camo_none”
|
||||
set class_demolitions_frags “1?
|
||||
set class_demolitions_grenade “smoke_grenade”
|
||||
set class_demolitions_limit “64?
|
||||
set class_demolitions_movespeed “1?
|
||||
set class_demolitions_perk1 “rpg_mp”
|
||||
set class_demolitions_perk2 “specialty_explosivedamage”
|
||||
set class_demolitions_perk3 “specialty_longersprint”
|
||||
set class_demolitions_primary “winchester1200?
|
||||
set class_demolitions_primary_attachment “none”
|
||||
set class_demolitions_secondary “beretta”
|
||||
set class_demolitions_secondary_attachment “none”
|
||||
set class_demolitions_special “1?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Heavygunner Class Options
|
||||
set allies_allow_heavygunner “1?
|
||||
set axis_allow_heavygunner “1?
|
||||
|
||||
set class_heavygunner_allowdrop “1?
|
||||
set class_heavygunner_camo “camo_none”
|
||||
set class_heavygunner_frags “1?
|
||||
set class_heavygunner_grenade “concussion_grenade”
|
||||
set class_heavygunner_limit “64?
|
||||
set class_heavygunner_movespeed “0.875?
|
||||
set class_heavygunner_perk1 “specialty_specialgrenade”
|
||||
set class_heavygunner_perk2 “specialty_armorvest”
|
||||
set class_heavygunner_perk3 “specialty_bulletpenetration”
|
||||
set class_heavygunner_primary “saw”
|
||||
set class_heavygunner_primary_attachment “none”
|
||||
set class_heavygunner_secondary “usp”
|
||||
set class_heavygunner_secondary_attachment “none”
|
||||
set class_heavygunner_special “1?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Sniper Class Options
|
||||
set allies_allow_sniper “1?
|
||||
set axis_allow_sniper “1?
|
||||
|
||||
set class_sniper_allowdrop “1?
|
||||
set class_sniper_camo “camo_none”
|
||||
set class_sniper_frags “1?
|
||||
set class_sniper_grenade “flash_grenade”
|
||||
set class_sniper_limit “64?
|
||||
set class_sniper_movespeed “1?
|
||||
set class_sniper_perk1 “specialty_specialgrenade”
|
||||
set class_sniper_perk2 “specialty_bulletdamage”
|
||||
set class_sniper_perk3 “specialty_bulletpenetration”
|
||||
set class_sniper_primary “m40a3?
|
||||
set class_sniper_primary_attachment “none”
|
||||
set class_sniper_secondary “beretta”
|
||||
set class_sniper_secondary_attachment “silencer”
|
||||
set class_sniper_special “1?
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// SpecOps Class Options
|
||||
set allies_allow_specops “1?
|
||||
set axis_allow_specops “1?
|
||||
|
||||
set class_specops_allowdrop “1?
|
||||
set class_specops_camo “camo_none”
|
||||
set class_specops_frags “1?
|
||||
set class_specops_grenade “flash_grenade”
|
||||
set class_specops_limit “64?
|
||||
set class_specops_movespeed “1?
|
||||
set class_specops_perk1 “c4_mp”
|
||||
set class_specops_perk2 “specialty_explosivedamage”
|
||||
set class_specops_perk3 “specialty_bulletaccuracy”
|
||||
set class_specops_primary “mp5?
|
||||
set class_specops_primary_attachment “none”
|
||||
set class_specops_secondary “usp”
|
||||
set class_specops_secondary_attachment “silencer”
|
||||
set class_specops_special “1?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Weapons
|
||||
//
|
||||
set weap_allow_ak47 “1?
|
||||
set weap_allow_ak74u “1?
|
||||
set weap_allow_barrett “1?
|
||||
set weap_allow_beretta “1?
|
||||
set weap_allow_colt45 “1?
|
||||
set weap_allow_concussion_grenade “1?
|
||||
set weap_allow_deserteagle “1?
|
||||
set weap_allow_deserteaglegold “1?
|
||||
set weap_allow_dragunov “1?
|
||||
set weap_allow_flash_grenade “1?
|
||||
set weap_allow_frag_grenade “1?
|
||||
set weap_allow_g3 “1?
|
||||
set weap_allow_g36c “1?
|
||||
set weap_allow_m1014 “1?
|
||||
set weap_allow_m14 “1?
|
||||
set weap_allow_m16 “1?
|
||||
set weap_allow_m21 “1?
|
||||
set weap_allow_m4 “1?
|
||||
set weap_allow_m40a3 “1?
|
||||
set weap_allow_m60e4 “1?
|
||||
set weap_allow_mp44 “1?
|
||||
set weap_allow_mp5 “1?
|
||||
set weap_allow_p90 “1?
|
||||
set weap_allow_remington700 “1?
|
||||
set weap_allow_rpd “1?
|
||||
set weap_allow_saw “1?
|
||||
set weap_allow_skorpion “1?
|
||||
set weap_allow_smoke_grenade “1?
|
||||
set weap_allow_usp “1?
|
||||
set weap_allow_uzi “1?
|
||||
set weap_allow_winchester1200 “1?
|
||||
|
||||
// Explosives
|
||||
set scr_weapon_allowc4 “1?
|
||||
set scr_weapon_allowclaymores “1?
|
||||
set scr_weapon_allowflash “1?
|
||||
set scr_weapon_allowfrags “1?
|
||||
set scr_weapon_allowmines “1?
|
||||
set scr_weapon_allowrpgs “1?
|
||||
|
||||
// Smoke
|
||||
set scr_weapon_allowsmoke “1?
|
||||
|
||||
// Nightvision
|
||||
set scr_enable_nightvision “1?
|
||||
////////////////////////////////////////////
|
||||
////////////////////////////////////////////
|
||||
//
|
||||
// Attachments
|
||||
set attach_allow_assault_acog “1?
|
||||
set attach_allow_assault_gl “1?
|
||||
set attach_allow_assault_none “1?
|
||||
set attach_allow_assault_reflex “1?
|
||||
set attach_allow_assault_silencer “1?
|
||||
set attach_allow_lmg_acog “1?
|
||||
set attach_allow_lmg_grip “1?
|
||||
set attach_allow_lmg_none “1?
|
||||
set attach_allow_lmg_reflex “1?
|
||||
set attach_allow_pistol_none “1?
|
||||
set attach_allow_pistol_silencer “1?
|
||||
set attach_allow_shotgun_grip “1?
|
||||
set attach_allow_shotgun_none “1?
|
||||
set attach_allow_shotgun_reflex “1?
|
||||
set attach_allow_smg_acog “1?
|
||||
set attach_allow_smg_none “1?
|
||||
set attach_allow_smg_reflex “1?
|
||||
set attach_allow_smg_silencer “1?
|
||||
set attach_allow_sniper_acog “1?
|
||||
set attach_allow_sniper_none “1?
|
||||
|
||||
Cheat – Effect
|
||||
/give all – Access All Weapons
|
||||
/god – God Mode
|
||||
/noclip – No Clipping Mode
|
||||
/notarget – Enemies Ignore You
|
||||
/give ammo – Full Ammo
|
||||
/jump_height # – Adjust Gravity Default = 39
|
||||
/timescale # – Adjust Time Default = 1.00
|
||||
/cg_LaserForceOn 1 – Add Laser Sights to ALL Weapons
|
||||
/demigod – God mode but screen still shakes
|
||||
/ufo – Same as noclip?
|
||||
/r_fullbright – Easier to see things
|
||||
/cg_drawGun – Removes Your Gun
|
||||
/cg_fov – Zoom with any Gun
|
||||
/player_sprintSpeedScale – Set player’s sprint speed
|
||||
/kill – Kill player
|
||||
/cg_laserlight 1 – To draw the light emitted from the laser
|
||||
/take ammo – Removes your ammo
|
||||
/take all – Removes all your guns and health
|
||||
/sf_use_ignoreammo 1 – Allows you to shoot without reloading.
|
||||
|
||||
//******************************************************************************
|
||||
// KOTH -- HEADQUARTERS
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype koth map mp_backlot gametype dm map mp_bloc gametype sab map mp_bog gametype war map mp_cargoship gametype dom map mp_citystreets gametype sd map mp_convoy"
|
|
@ -0,0 +1,47 @@
|
|||
xl2eVo Patch Making TuT!
|
||||
|
||||
I've done this thread because a few people have asked about it and nobody makes their own patches on cod4, its full of that shit one that freezes all the time lol, its really simple, pretty much the same as cod5 but different files and offsets.
|
||||
|
||||
Before you begin you will need...
|
||||
|
||||
HxD Hex Editor
|
||||
Notepad++
|
||||
Offzip & Packzip
|
||||
|
||||
make a folder on your desktop called pack and put in offzip, packzip and your patch_mp.ff.
|
||||
|
||||
I will put each step in a spoiler to make this thread as easy to read as possible..
|
||||
|
||||
[SPOILER=]First you need to Decompress your patch_mp.ff so you need to open up cmd command prompt and type in cd desktop/pack then
|
||||
offzip -a -z -15 patch_mp.ff ./ 0[/spoiler]
|
||||
|
||||
NEXT you need to select the files you want and delete all the other...in the spoiler is a list of all the files you MIGHT want, weapons.gsc and rank.gsc are where most mods are in existing patches.
|
||||
|
||||
[spoiler=]
|
||||
PHP Code:
|
||||
GSCNAME FILE STARTOFFSET LENGTH
|
||||
Koth.gsc 00030783 2924 5F0D
|
||||
Weapons 0002cbcc 1AC7 9E0A
|
||||
Rank part1 000295f3 A00d 5FF3
|
||||
Rank part2 0002cbcc 0 1A9B
|
||||
[/spoiler]
|
||||
|
||||
Once you have all your files ready with the correct offsets chosen, just open them up in Notepad++ and edit to your liking.
|
||||
|
||||
Once you have finished editing, just make sure the files are the same size as they were before you started and recompress them...
|
||||
|
||||
[spoiler=]Packzip -o 0x(File name here) -w -15 (File name Here).dat patch_mp.ff
|
||||
|
||||
An example would be Packzip -o- 0x0002cbcc -w -15 0002bcc.dat patch_mp.ff
|
||||
[/spoiler]
|
||||
|
||||
Now its all packed back up and ready to transfer to your ps3 for testing
|
||||
|
||||
|
||||
Fabulous tutorial, well explained. I only found 2 mistakes, the first is in the example,
|
||||
|
||||
" Packzip -o 0x(File name here) -w -15 (File name Here).dat patch_mp.ff
|
||||
|
||||
An example would be Packzip -o- 0x0002cbcc -w -15 0002bcc.dat patch_mp.ff "
|
||||
|
||||
the top line is correct yet the bottom line should not have a - after the o. also, the the 2nd time you wrote the name you forgot a "c" before the "bcc." Everything else is fabulous and this is the best I have ever seen. Well done!
|
|
@ -0,0 +1,96 @@
|
|||
Alright, I'll post every tweaks and tips I know on cod4, there will be useful things and completely useless yet funny binds ^^, lets start by some useful things. Oh and forgive my english please, if there is something you don't understand or something that doesn't work, I'll be glad to reply and help you out as much as I can
|
||||
|
||||
First I'll list the modification that are available with the promod, they should all work in normal too:
|
||||
|
||||
- Promod Controls :
|
||||
These controls can be very important in clanwars especially the DropBomb thing. So i found a way to bind it to a key here is the line you have to add to your cfg file
|
||||
bind O "openscriptmenu quickpromod 2"
|
||||
|
||||
(here of course if you want another key to be assigned just change the O by the one you want)
|
||||
Now every time I press on O my player will just drop the bomb where he is, this is a crucial thing if you mistakenly stole the bomb from your friend.
|
||||
|
||||
I don't think something like killing yourself is important but it would work the same
|
||||
bind x "openscriptmenu quickpromod 3" for timeout
|
||||
bind x "openscriptmenu quickpromod 4" for suicide
|
||||
|
||||
Next, don't you think it is really boring to press Esc. then choose a class etc etc when you want to choose another weapon ? then here is the solution :
|
||||
bind 1 "openscriptmenu quickpromod assault"
|
||||
bind 2 "openscriptmenu quickpromod specops"
|
||||
bind 3 "openscriptmenu quickpromod demolitions"
|
||||
bind 4 "openscriptmenu quickpromod sniper"
|
||||
|
||||
(These are the numbers above & é " ' at least on my G15 :p)
|
||||
Done, now every time I press on each of this keys my weapons will immediately change. Remember that your classes are registered by the promod if you choose an M4 then by pressing the key "1" you'll always have the M4 back if you want something else you'll have to get through the process of choosing your weapon, camo, special grenade etc at least once (same for the other classes). Please note that those binds won't work when you're dead ! But if you press them before 10 secondes after the beginning of a round it will change.
|
||||
|
||||
And you can also change which special grenade you want, flash/smoke with that bind
|
||||
bind I "openscriptmenu quickpromod grenade"
|
||||
|
||||
- Promod Graphics :
|
||||
Here I'll explain what exactly the promod allow us to change in our graphics. First you have to know the promod is different from the normal maps. It is something pretty light but all the modification they have done boost your fps by 15% at least.
|
||||
|
||||
DrawDecals, this is one of the most used tweaks in all cfg boost you could ever use, it significantly increase your fps but your game will be really really ugly, (uni-colored walls, ugly ground, ...) If you want to test it yourself here is the line.
|
||||
r_DrawDecals 0 (to revert it back as before put 1 instead of 0)
|
||||
|
||||
But there is something you can do about that for instance, if you want to do your best in clanwars but still enjoy the graphics when you're playing for fun without every time having to change the line here is the process, we will bind the command to a key to be able to toggle between the 2.
|
||||
bind ALT "toggle r_drawdecals 1 0"
|
||||
|
||||
Now every time I press on ALT key my game will change between DrawDecals 1 and 0
|
||||
|
||||
DrawSun, well no need any explanation here however this doesn't really change anything but here is the command if you want to get rid of the sun.
|
||||
r_DrawSun 0 (again, if you want to get it back just put 1 instead of 0)
|
||||
|
||||
Explosion Distortion, this happens when something explodes in front of you there will be a graphical "distortion" effect, this will be beautiful but you won't see anything behind it and it greatly decrease your fps when it happens so if you want to get rid of it.
|
||||
r_distortion 1 0
|
||||
|
||||
The Shadows, ah such a beautiful thing .. the promod doesn't allow it, it gave too much of an advantage so they removed it. DO NOT TRY to activate the shadows in promod as you will hear a terrible sound until you disable it. But if like me you want a beautiful game when you're not in promod we can toggle it.
|
||||
sm_enable 1 0 bind K "toggle sm_enable 1 0"
|
||||
|
||||
Eject Brass, now that's something useful as it will disable the empty shell of your weapon when you're shooting, It means that you should no longer have fps drops when you're shooting now with it.
|
||||
cg_Brass 1 0 bind x "toggle cg_Brass 1 0"
|
||||
I'm sure you want some more !!! there are still so many things.. I don't even know where to start :p
|
||||
I think now I'll list the MOST useful thing you can change. So here come part 3 !
|
||||
|
||||
- Others :
|
||||
THE thing every player HAS to change, the fov (field of view) you just have to try it to see it yourself but I think you really should give it a try if you never did.
|
||||
cg_fov 65 80
|
||||
|
||||
And if like me you like to change depending on which map it is or which weapon you have
|
||||
bind = "toggle cg_fov 65 73 80"
|
||||
|
||||
(Why 73 ? Because :p, you can put up to 8 different numbers i think, means 8 different fov, choose the one that suits you the most)
|
||||
Ok this one is a bit different because ANY number between 65 and 80 will work, it is as your player's preference. You will see much more things at close range but you'll have less visibility at long range. test it and choose the one you like the most ! Also if you think a fov 8à is not enough you can go even further. The following command can ONLY be applied directly in the cfg with the game not open else it won't work.
|
||||
cg_fovScale 1.125 (I don't think you can go any further)
|
||||
bind x "toggle cg_fovScale 1 1.125" (aka default, max)
|
||||
|
||||
Now something really useful, the sensitivity. If like me you find it hard to settle it with the cod4 menu there is a way to fix that.
|
||||
sensitivity x.xxxx (yeah you can settle it a 0.000000001 if you want, long live to the accuracy)
|
||||
|
||||
If you want to see how many fps you have constantly
|
||||
cg_drawFPS 1
|
||||
|
||||
(they should appear in one of the screen corners, we'll see later how to change its place)
|
||||
Now you got a counter that display your amount of fps. Next is put a limit to them, belive me 90 constant is better than having them up to 130 then down to 100 ( = lag )
|
||||
com_maxfps 125 (or 250, the 2 most used numbers)
|
||||
bind ) "toggle com_maxfps 125 250"
|
||||
|
||||
(yeah you will find some servers that kick you for having too high fps .. However I never got kicked for 125 so when I see there is a limit i just press the key and I'm down to 125)
|
||||
|
||||
Then there is a way to reduce lags, or at least allow more of your bandwidth to go for the game.
|
||||
snaps 30 (reduce lag)
|
||||
cl_maxpackets 100 (should already be like this because of the promod)
|
||||
|
||||
To reduce the lags coming from your PC there are some things i never tested myself so I can't tell what will happen I don't think they are not allowed but who knows ... So I'll only write the ones I'm sure won't trouble your game experience, However if someone ask for them I won't refuse.
|
||||
rate 25000 (This should reduce the effort your computer have to do to handle the game)
|
||||
|
||||
And one last thing, if you want to have an indicator for the flash grenade just like the normal ones here is the line
|
||||
seta cg_hudGrenadeIconEnabledFlash "1"
|
||||
|
||||
EDIT 1 : Aha I knew I would forgot something, one of the things I use the most ...
|
||||
If you are pissed of having to press Esp then leave to leave here is some binds that will greatly simplify your life.
|
||||
bind F9 "disconnect" (this one will bring you back on the server list, really useful)
|
||||
bind F10 "quit" (this one just shut down the game)
|
||||
|
||||
EDIT 1 : I remember someone asked for my cfg, if you still want it I will share it here no problem =)
|
||||
|
||||
Ok that was the useful and serious part, there were so many things to tell so I won't be surprise if I have forgot something ... I'll update this post if I remember something.
|
||||
Stay tuned for the FUNNY part !! It will include how to change the teams name (ye you can call the enemy team fags if you want), customize the scoreboard and many others !!!
|
|
@ -0,0 +1,42 @@
|
|||
Here are some simple single player tips, tricks, and cheats for the Call of Duty 4 single player mode on PC.
|
||||
|
||||
Start up Call of Duty 4 single player, go into your options, and make sure that the console is enabled.
|
||||
|
||||
Press your ~ (tilde) key anytime you want to enter these codes in – you can keep entering them.
|
||||
First off, type seta thereisacow "1337", this enables most of the cheats.
|
||||
|
||||
In order to pick a level, use spdevmap mapname
|
||||
|
||||
Here are some handy console commands that may help you through the game:
|
||||
|
||||
ufo – you can fly through walls to get places – be careful, this can mess things up a little, and you may get stuck
|
||||
give – gives you an item. If you type give all, you will get all weapons
|
||||
god – god mode!
|
||||
demigod – god mode, but some things still happen like screen shaking and such
|
||||
notarget – you will be invisible to enemies
|
||||
give ammo – instant ammo
|
||||
jump_height – allows you to change the physics in the game – like moon shoes
|
||||
timescale – let’s you play with time – fast or slow
|
||||
cg_LaserForceOn – laser sight, baby!
|
||||
|
||||
To insert the following codes, enable the console from the in-game options. Press ~ and type in “seta thereisacow 1337?, pressing Enter thereafter. From here, type “spdevmap bog_a” and press Enter again. Then, you can insert the following cheats. this is how you do it
|
||||
|
||||
* cg_drawgun – Drop your gun
|
||||
* cg_fov – Zoom with any gun
|
||||
* cg_LaserForceOn 1 – Laser site with any gun
|
||||
* demigod – God Mode (with shaking screen)
|
||||
* give (item) – Acquire any item
|
||||
* give all – Get any weapon
|
||||
* give ammo – Full ammo
|
||||
* god – God Mode (without screen shaking)
|
||||
* jump_height # – Adjust gravity (39 is default)
|
||||
* noclip – No Clipping
|
||||
* notarget – Dumb AI
|
||||
* r_fullbright – Brighter features
|
||||
* timescale # – Adjust the time (1.00 is default)
|
||||
* ufo – No Clipping (II)
|
||||
|
||||
Map Names:
|
||||
ac130,aftermath,airlift,airplane,ambush,armada,blackout,bog_a,bog_b
|
||||
,cargoship,coup,hunted,icbm,jeepride,killhouse,launchfacilty_a,
|
||||
launchfacilty_b,scoutsniper,sniperescape,village_assault,village_defend
|
|
@ -0,0 +1,109 @@
|
|||
Setting up the CoDJumper mod for a public game server:
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
CoD4
|
||||
|
||||
1) Download the file from http://www.codjumper.com/mods.php (direct link) and extract it.
|
||||
2) Create a new folder named "codjumperv3_1" in the "Mods" folder on your server (if one doesn't exist, create it).
|
||||
3) Upload the two files named "mod.ff" & "z_cod4jumper.iwd" (found in your recently extracted folder) into the newly created folder named "codjumperv3_1". If you wish to use the official CoDJumper.com skins then you can download the .iwd file here (place it in the same folder as the other two files).
|
||||
4) Download our template server config file here. Edit it accordingly and place it in the "main" directory on your server. You may also want to rename the file to something more appropriate (see red text below regarding this).
|
||||
5) Next you must edit the command line for the server. This is where it gets slightly complicated - how you do this depends on what company you have bought your game server from. I will continue the instructions based on the control panel provided by LowPings.net:
|
||||
A) Select your game server, and then click "Command Line Changer".
|
||||
B) Click on the "New" link.
|
||||
C) In the "Command Line Name" box, enter "codjumperv3_1".
|
||||
D) Tick the "+set fs_game" checkbox and enter "mods/codjumperv3_1" into the textbox.
|
||||
E) Tick the "+set sv_punkbuster " checkbox and enter "1" into the textbox.
|
||||
F) Tick the "+exec" checkbox and enter the name of your server config, e.g. "7897987server.cfg" (it's recommended that you don't use a predictable config name such as server.cfg due to an exploit where people can download your server config and consequently get your RCON password.)
|
||||
G) Click "Save", and then on the Command Line Changer list page, click "Select" next to your new codjumperv3_1 entry.
|
||||
6) Restart your server, it should be running successfully now!
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
GUID admin on a CoD4 server
|
||||
|
||||
If you wish to auto-promote certain people when they join your server, then follow these simple instuctions:
|
||||
|
||||
1) Add the following lines to your server config (or if they are already in your config, edit accordingly):
|
||||
set cj_autoadmin "1"
|
||||
set cj_adminguids ""
|
||||
2) Insert the GUIDs and player names of the people whom you want to promote. The format should be as follows:
|
||||
set cj_adminguids "guid1,name1,guid2,name2,guid3,name3"
|
||||
3) You can have as many people as possible in it. You must make sure that it is the FULL GUID (32 characters), and there must be no spaces before/after the commas.
|
||||
4) Once you've set it up, people who are in the list should get automatically promoted if they're using the name specified in the config.
|
||||
|
||||
Here is an example of how it should be used (I've changed the GUIDs from their original values):
|
||||
set cj_adminguids "adfe897a00c6633abbb95b9b12624d8a,Peds@CoDJumper,874e8bbcb0df78a1059ad8d2bcae97e7,KS@CoDJumper,
|
||||
2f4eb471b44eeb2bb42fda57aadc423b,Svt@CoDJumper,02d326c7317bb3cda97685a690cf3340,Drof@CoDJumper"
|
||||
|
||||
GUID admins have the ability to promote/demote other plays in the game server, and have access to the CoDJumper mod admin panel, so only add people to your GUID admin list whom you trust! Note that you can't auto-promote people to VIP rank, that must be done manually each time they join. If you get the message "GUID admin detected" then it means that you have the correct GUID, but your name isn't as listed in the config. Also, make sure you use the GUID it provides when you do "/rcon status", NOT the "/pb_myguid" GUID.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Setting up the CoDJumper mod for local play:
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Please note that the tutorials below only apply to running the CoDJumper mod on your computer, not for hosting a server which runs the CoDJumper mod. This is particularly important for CoD2, where there are different mods available depending on whether or not you wish to host a server or play on your own "Listen server".
|
||||
|
||||
Credit goes to Damselflies for the CoD:WaW guide (which I have modified and formatted). The direct links may change over time (particularly for CoD4 and CoD:WaW), and so are only there as provisional links (the mods.php link isn't likely to change, but the filename of the mod archives themselves may change).
|
||||
|
||||
The simplest way of downloading and installing the mod correctly is to join one of our servers with "Allow Downloading" in Multiplayer Options set to "On".
|
||||
This must be emphasised! If you don't want to go through the hassle of manually downloading the files, extracting them and placing them in folders, then simply download them automatically off our servers. Once you've done that, all you have to do is make sure you load the mod and play in the correct gametype.
|
||||
* The above does not apply to CoD.
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
CoD:WaW
|
||||
|
||||
1) Download the file from http://www.codjumper.com/mods.php (direct link) and extract it.
|
||||
2) Create a new folder named "mp_codjumper" in "C:\Documents and Settings\Owner\Local Settings\Application Data\Activision\CoDWaW\mods".
|
||||
(Vista may be something along the lines of "C:\Users\<Your account name>\AppData\Local\Activision\CoDWaW\Mods".)
|
||||
Note: make sure "Show hidden files" is enabled, if not, simply follow those 4 easy steps:
|
||||
A) Click "Tools" ("Organize" in Vista).
|
||||
B) Click "Folder options" ("Folder and Search Options" in Vista).
|
||||
C) Click "Display" ("View" in Vista).
|
||||
D) Check "Show hidden files and folders".
|
||||
3) Copy the two files named "mod.ff" & "mp_codjumper.iwd" (found in your recently extracted folder) into the newly created folder named "mp_codjumper".
|
||||
4) Start the game, click Mods, select "mp_codjumper" and click "Launch mod". Once done, you can load a map in console with "/map mp_shrine", but make sure you run the map in the deathmatch gametype by using "/g_gametype dm" before you load a map (the mod only works in DM). Alternatively, you can run a map through the "Start a new server" menu.
|
||||
|
||||
|
||||
CoD4
|
||||
|
||||
It is highly recommended to have the latest patch installed (1.7 at time of writing).
|
||||
|
||||
1) Download the file from http://www.codjumper.com/mods.php (direct link) and extract it.
|
||||
2) Create a new folder named "codjumperv3_1" in "C:\Program Files\Activision\Call of Duty 4 - Modern Warfare\Mods".
|
||||
3) Copy the two files named "mod.ff" & "z_cod4jumper.iwd" (found in your recently extracted folder) into the newly created folder named "codjumperv3_1".
|
||||
4) Start the game, click Mods, select "codjumperv3_1" and click "Launch mod". Once done, you can load a map in console with "/map mp_carentan", but make sure you run the map in the codjumper gametype by using "/g_gametype cj" before you load a map. Alternatively, you can run a map through the "Start a new server" menu.
|
||||
|
||||
|
||||
CoD2
|
||||
|
||||
1) Download "SPM - Save Position Mod v.1" from http://www.codjumper.com/mods.php (direct link) and extract it.
|
||||
2) Copy the file named "zzz_Save_position_mod_V1.0.iwd" (found in your recently extracted folder) into "C:\Program Files\Activision\Call of Duty 2\main".
|
||||
3a) Start the game, open console, type: /seta scr_saveposition 1, or:
|
||||
3b) Open "config_mp.cfg" in "C:\Program Files\Activision\Call of Duty 2\main\players\<Your profile name>", and add the following at the very bottom on a separate line: seta scr_saveposition "1"
|
||||
4) Start the game. Load a map in console with "/map mp_carentan", but make sure you run the map in the deathmatch or team deathmatch gametype by using "/g_gametype codjumper", "/g_gametype dm" or "/g_gametype tdm" before you load a map (the mod only works in 'codjumper', DM or TDM). Alternatively, you can run a map through the "Start a new server" menu.
|
||||
|
||||
|
||||
CoD:UO
|
||||
|
||||
United Offensive is an expansion pack, and as such the CoD mod works for it (see below for instructions).
|
||||
|
||||
|
||||
CoD
|
||||
|
||||
1) Download "AKK - Auto Kick Killer v1.5" from http://www.codjumper.com/mods.php (direct link) but do not extract it - although it may look like a .zip file, it is actually a .pk3 and should remain as it is.
|
||||
2) Move the file named "zzz_AKK_v1.55.pk3" (which you just downloaded) into "C:\Program Files\Activision\Call of Duty\Main".
|
||||
3) Start the game. Load a map in console with "/map mp_carentan", but make sure you run the map in the deathmatch or team deathmatch gametype by using "/g_gametype dm" or "/g_gametype tdm" before you load a map (the mod only works in DM or TDM). Alternatively, you can run a map through the "Start a new server" menu.
|
||||
|
||||
If you find that for some reason it does not work, also try:
|
||||
4) Open "config_mp.cfg" (located in the same 'Main' directory as the file you just moved), and add the following at the very bottom on a separate line: seta scr_saveposition "1"
|
||||
5) Follow step 3 above.
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" -->
|
||||
<html dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<title>Understanding lag and lagometer</title>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body {
|
||||
font-family: ;
|
||||
font-size: 12px ;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
/* Quote & Code blocks */
|
||||
.code, .quote, .php {
|
||||
font-size: 11px;
|
||||
border: black; border-style: solid;
|
||||
border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
|
||||
}
|
||||
.Forum {
|
||||
font-weight : bold;
|
||||
font-size: 18px;
|
||||
}
|
||||
.Topic {
|
||||
font-weight : bold;
|
||||
font-size: 14px;
|
||||
}
|
||||
.genmed {
|
||||
font-size: 12px;
|
||||
}
|
||||
hr.sep { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;}
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<span class="Topic">Technical Questions - Understanding lag and lagometer</span>
|
||||
<br /><hr />
|
||||
<span style="font-weight:bold">What is LAG, how to use the lagometer?</span>
|
||||
<br /><br />
|
||||
The lagometer is a tool provided to diagnose the condition of your connection, and to let you know when things are proceeding normally and when they are not. The following is a brief explanation in text and pictures of what the lagometer does and what it indicates.
|
||||
<br /><br />
|
||||
First, you need to turn it on. In the console, type:
|
||||
<br /><br />
|
||||
<span style="font-family:Courier New">cg_lagometer 1</span>
|
||||
<br /><br />
|
||||
When you close the console, you should see this:
|
||||
<br /><br />
|
||||
<img src="lagometer.jpg" alt="Image" title="Image" border="0" />
|
||||
<br /><br />
|
||||
This is a one-quarter-size shot of my screen at 1024 x 768. The inset is the lagometer rendered full-size as it appears to me in-game.
|
||||
<br /><br />
|
||||
"Very nice," you say, "but what the heck am I looking at, and what does it mean?"
|
||||
<br /><br />
|
||||
Glad you asked! The lagometer is a graphical representation of the interaction between the server and your "client," which is the game running on your computer.
|
||||
<br /><br />
|
||||
The server "serves" data representing the "gamestate" (the "world" that the server is simulating mathematically) by sending it to all clients (every player connected to the server) simultaneously 20 times per second (every 50 milliseconds). These "snapshots" (as they are officially known) are then "rendered" by your client and its video system to display the part of the gameworld and its events which are visible to you from your gameworld viewpoint.
|
||||
<br /><br />
|
||||
Of course, despite the fact that every client gets a gamestate snapshot for the entire gameworld 20 times a second, your client only needs to render the part of the world it can logically "see." The other data is there, but not rendered (except in the case of cheating, which is why it is possible to "see through walls," etc. with cheats.)
|
||||
<br /><br />
|
||||
But if the snapshots are coming in only 20 times a second, and your client is rendering many more frames per second (typically about 80, or 4 times the snapshot rate), where does the information for the extra frames come from? Clearly, the client is not rendering each snapshot 4 times, since that would make a very choppy "slideshow" kind of presentation. Instead, each client calculates and "interpolates" its own data between the "real" data contained in successive snapshots, and renders these "interpolated" frames so you get a smooth animation of moving objects (primarily other players) in the game.
|
||||
<br /><br />
|
||||
This system works out pretty well, since it is reasonable to assume that if a player is moving due north in 2 successive snapshots that his position will follow a smooth linear progression in the interpolated frames.
|
||||
<br /><br />
|
||||
When you look at the lagometer display, you see that it is divided horizontally by a dashed white line, like the one painted on a highway where it is okay to pass. This is the divider between the upper "your client's rendered frames" area, and the lower "snapshots your client got from the server" area. (comment by BoonDock: this devider is not exisiting in ET!)
|
||||
<br /><br />
|
||||
The display above the white lines advances one pixel for every frame your client renders. The lower display advances one pixel for each snapshot that your client receives. This is why the upper display always moves faster than the lower one.
|
||||
<br /><br />
|
||||
Below is a series of lagometer screenshots from my client connected to the AWITS server. (or ET) Let's examine them in detail to see what information they contain:
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 1</span> is a normal, stable lagometer display, with a narrow, flat green line at the bottom, which reflects a fairly low (50) and stable ping. The upper blue line has only a tiny bit of yellow in it. Yellow above the blue line is undesirable, since these are frames that are extrapolated by your client, which means that it is making a kind of educated guess about where moving objects are, in the absence of "real" snapshot data from the server.
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 2</span> contains many yellow triangles above the blue, but there is still blue in between them. The blue indicates frames that are interpolated between valid snapshots, but the yellow means that the client is extrapolating outside of valid snapshot data. The height of the yellow indicates the time since the last valid snapshot, which is why triangles form. The longer the time without a valid snapshot, the higher the yellow line, until valid snapshot data is again rendered and the yellow suddenly disappears. When this happens, the client will put players back where the server says they should be, which may not be where the client had extrapolated their movements. The game would appear choppy as the cycle of extrapolate/correct/extrapolate/correct continued.
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 3</span> shows a large yellow triangle forming at the edge of the lagometer. As time passes without a valid snapshot having been rendered, the height of the triangle grows accordingly. This is a graphic representation of the phenomenon of lag. Note that there are spikes in the green, showing that the client's ping is momentarily climbing.
|
||||
<br /><br />
|
||||
<div style="text-align:center"><img src="lagtypes.jpg" alt="Image" title="Image" border="0" /></div>
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 4</span> shows red spikes, which mean that snapshots have been dropped by the network, either in transmission (packet loss) or because the client can't handle them (cpu tied up by other tasks, like taking repeated screenshots.) CoD and all Quake-engine games use UDP packets because they are fast and easy to handle, but they have no retransmission or error-correction capability. The server sends them and forgets about them. Once lost, they are lost for good. Red spikes like these occur from time to time, and occasional red spikes are not necessarily bad unless they are wide (each pixel in width is one snapshot lost) or frequent. During DoS attacks on our host, the lagometer will show almost solid red. (Red spikes will always be this height. There is no meaning associated with the height, which is purely arbitrary.)
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 5</span> shows a big yellow triangle, which would manifest in-game as a brief freeze, followed by players "teleporting" to nearby locations as the client gets correct information from the server. Remember, any yellow means the client is trying to guess where players should be in the absence of proper information from the server.
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">Number 6</span> shows a long string of connected yellow. With no blue in sight, any movement by the player will result in the "skating" or "rubber-band" effect, where the player is "snapped back" to where the server last put him. This shot is not really typical of that effect, since it was the result of taking many back-to-back screenshots. When this happens spontaneously in the game, a triangle will form that grows to the top of the lagometer, so what you really see is a yellow bar all the way to the top.
|
||||
<br /><br />
|
||||
Remember, the only thing that is "really" happening in-game is what the server is calculating. If the server cannot get this information to the client, the client will render a guess about what is going on. Since players move at about 10 feet per second in the game, one missed snapshot can make a difference of 6 inches in location.
|
||||
<br /><br />
|
||||
Four missed snapshots (one-fifth of a second in duration) can make a difference of two feet! This is why your client sometimes appears to show a sure hit, but the server may register a clean miss. Playing with the lagometer on can help you understand what is "really" going on in the game.
|
||||
<br /><br />
|
||||
<span style="font-size:9px; line-height:normal">The Lagometer tutorial above is © 2004 by wadiano productions. It's written by Ron "Pair O' Noyas" Reposh, and was originally posted at <a href="http://awits.com/Community." target="_blank">http://awits.com/Community.</a> All Images and trademarks are property of Activision.</span>
|
||||
<br /><br />
|
||||
<br />
|
||||
<span style="font-weight:bold">Is there a cure against LAG?</span>
|
||||
<br /><br />
|
||||
Yep.. most of the time there sure is, but the cure depends on what information the lagometer shows.
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">If you get green spikes</span>, or the server wont let you connect because your ping is to high try to:
|
||||
<br /><br />
|
||||
1 Stop all applications that uses the internet, such as Internet browsers, downloads, ICQ, Teamspeak, skype ect.
|
||||
<br /><br />
|
||||
2. If you are using a shared internet connection, step one applies to ALL the computers on the connection. Brother, Sister, mom, dad or neighbor I don't care. How to stop them is your problem <img src="images/smiles/icon_smile.gif" alt="Smile" border="0" />
|
||||
<br /><br />
|
||||
3. Scan your computer for spy ware & Virus, sometimes these buggers eat alot of bandwidth. I prefer to use Spybot SD to get rid of the spy ware, but you can use whatever you like. remember to update your virus killer and do a full system scan as well, When the scan is complete, reboot your computer.
|
||||
<br /><br />
|
||||
<span style="font-weight:bold">If you get yellow spikes</span>, you should try to:
|
||||
<br /><br />
|
||||
1. Lower your graphic settings in the game, such as Video Mode, Character textures, General textures texture filter.
|
||||
<br /><br />
|
||||
But I just bought this x-brand display adaptor with 3.6GB DDR ram and dual 4.7Ghz processors?
|
||||
<br />
|
||||
I don't care, lower your settings.. If the problem is solved, you can gradually increase the settings step by step until the problem re-occur. Another good idea could be to update the driver for your display adaptor, chipset, BIOS etc.
|
||||
<br /><br />
|
||||
2. lower your sound settings.
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 206 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 180 KiB |
After Width: | Height: | Size: 166 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 153 KiB |
|
@ -0,0 +1,27 @@
|
|||
seta sv_punkbuster 1
|
||||
wait
|
||||
pb_sv_enable
|
||||
|
||||
// Server name
|
||||
set sv_hostname "My CoD4 Server" //Change this to whatever you want your server to be named in the server browser
|
||||
|
||||
// Server password
|
||||
set g_password "" // blank means NO password
|
||||
|
||||
// Rconpassword
|
||||
set rcon_password "change_me" // Change this to your rcon password!
|
||||
|
||||
// Maximum Clients
|
||||
set sv_maxclients "32"
|
||||
set sv_privateclients "6"
|
||||
|
||||
// Max Ping
|
||||
set sv_maxping "225"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "25000"
|
||||
|
||||
// Map_rotation
|
||||
set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
||||
|
||||
set sv_maprotationcurrent ""
|
|
@ -0,0 +1,352 @@
|
|||
// Call of Duty 4 - Config by Taher furious
|
||||
|
||||
// Public Information
|
||||
|
||||
sets sv_hostname "xxxxxx"
|
||||
set scr_motd "Welcome to xxxxxx"
|
||||
|
||||
// Common Server Settings
|
||||
|
||||
// Log Settings
|
||||
set g_logsync 2
|
||||
set logfile 1
|
||||
set g_log games_mp.log
|
||||
set sv_log_damage 1
|
||||
|
||||
// Network options
|
||||
//set net_ip 1.2.3.4
|
||||
//set net_port 28960
|
||||
set com_hunkMegs 512
|
||||
set net_noipx 1
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated 0
|
||||
|
||||
// Master servers
|
||||
|
||||
set g_gametype war
|
||||
set scr_war_scorelimit 1000
|
||||
set scr_war_timelimit 10
|
||||
|
||||
set g_allowvote 0
|
||||
set scr_allow_vote 0
|
||||
|
||||
// Password Settings
|
||||
|
||||
set rcon_password furious
|
||||
set sv_privatePassword ""
|
||||
set g_password ""
|
||||
|
||||
// Player slots setup
|
||||
set sv_maxclients 11
|
||||
set sv_privateclients ""
|
||||
|
||||
// Ping
|
||||
set sv_minPing 0
|
||||
set sv_maxping 999
|
||||
|
||||
// Client Download Settings.Used for MODs and custom maps
|
||||
set sv_allowdownload 1
|
||||
seta sv_wwwDownload 1
|
||||
seta sv_wwwBaseURL
|
||||
seta sv_wwwDlDisconnected 1
|
||||
|
||||
// Rate
|
||||
set sv_maxRate 30000
|
||||
|
||||
// FPS
|
||||
set sv_fps 150
|
||||
|
||||
// Drop inactive players
|
||||
set sv_timeout 300
|
||||
set sv_zombietime 1
|
||||
set g_inactivity 0
|
||||
set g_inactivityspectator 0
|
||||
|
||||
// AntiFlooding Settings
|
||||
set sv_floodProtect 1
|
||||
set sv_reconnectlimit 3
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole 0
|
||||
set cl_autocmd 0
|
||||
set sv_cheats 0
|
||||
set sv_pure 1
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam 1
|
||||
set sv_punkbuster 0
|
||||
|
||||
// Temporary Ban duration, in seconds
|
||||
set sv_kickBanTime 3600
|
||||
|
||||
// In-game voice communication system
|
||||
set sv_voice 1
|
||||
set sv_voiceQuality 1
|
||||
set voice_deadChat 1
|
||||
set voice_global 0
|
||||
set voice_localEcho 0
|
||||
set winvoice_mic_mute 1
|
||||
|
||||
// Misc
|
||||
|
||||
set sv_allowAnonymous 0
|
||||
set g_antilag 0
|
||||
set g_compassShowEnemies 0
|
||||
//ui_maxclients 32
|
||||
|
||||
// player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// teams
|
||||
set scr_teambalance 0
|
||||
set scr_team_fftype 1
|
||||
set scr_team_teamkillspawndelay 0
|
||||
set scr_team_kickteamkillers 0
|
||||
set scr_team_respawntime 0
|
||||
|
||||
// UI
|
||||
set scr_hardcore 0
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
// gameplay
|
||||
set scr_game_allowkillcam 0
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 1
|
||||
set scr_game_forceuav 0
|
||||
set scr_game_hardpoints 0
|
||||
|
||||
// hardpoints
|
||||
set scr_hardpoint_allowartillery 0
|
||||
set scr_hardpoint_allowuav 0
|
||||
set scr_hardpoint_allowhelicopter 0
|
||||
|
||||
// limits the number of players that can choose each class type
|
||||
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 1
|
||||
|
||||
// perks
|
||||
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 0
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 0
|
||||
set perk_allow_specialty_grenadepulldeath 0
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 0
|
||||
|
||||
// class movespeed
|
||||
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 0
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
// Assault Rifles
|
||||
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
// Assault Attachments
|
||||
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 0
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 0
|
||||
|
||||
// SMG
|
||||
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
// SMG Attachments
|
||||
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 0
|
||||
|
||||
// Shotguns
|
||||
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
// Shotgun Attachments
|
||||
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
// LMG
|
||||
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
// LMG Attachments
|
||||
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 0
|
||||
|
||||
// Sniper Rifles
|
||||
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
// Sniper Attachments
|
||||
/
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 0
|
||||
|
||||
// Pistols
|
||||
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
// Pistol Attachments
|
||||
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
// Grenades
|
||||
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 0
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
|
||||
// assault class default loadout
|
||||
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment reflex
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_fraggrenade
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_bulletaccuracy
|
||||
set class_assault_grenade flash_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
// specops class default loadout
|
||||
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 specialty_fraggrenade
|
||||
set class_specops_perk2 specialty_bulletdamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
// heavygunner class default loadout
|
||||
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_bulletdamage
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade flash_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
// demolitions class default loadout
|
||||
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 specialty_fraggrenade
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
// sniper class default loadout
|
||||
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_fraggrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
|
||||
// First gametype to load
|
||||
// "dm" - free for all deathmatch
|
||||
// "dom" - domination
|
||||
// "koth" - headquarters
|
||||
// "sab" - sabotage
|
||||
// "sd" - search & destroy
|
||||
// "war" - team deathmatch
|
||||
//******************************************************************************
|
|
@ -0,0 +1,39 @@
|
|||
seta sv_punkbuster 1
|
||||
wait
|
||||
pb_sv_enable
|
||||
|
||||
// Server name
|
||||
set sv_hostname "YOUR HOST NAME" //Change this to whatever you want your server to be named in the server browser
|
||||
|
||||
//===============================================================================
|
||||
// Public Information - OPTIONAL
|
||||
//===============================================================================
|
||||
sets _Admin "name"
|
||||
sets _Email "blahblah@blahblah.com"
|
||||
sets _Website "my very cool website.com"
|
||||
sets _Location "Dallas - USA"
|
||||
set scr_motd "A MOTD HERE
|
||||
|
||||
// Server password
|
||||
set g_password "" // blank means NO password
|
||||
|
||||
// Rconpassword
|
||||
set rcon_password "xxxx" // Change this to your rcon password!
|
||||
|
||||
// Maximum Clients
|
||||
set sv_maxclients "32"
|
||||
set sv_privateclients "6"
|
||||
|
||||
// Max Ping
|
||||
set sv_maxping "250"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "25000"
|
||||
|
||||
//set Game Type
|
||||
set g_gametype "koth"
|
||||
|
||||
// Map_rotation
|
||||
set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"
|
||||
|
||||
set sv_maprotationcurrent ""
|
|
@ -0,0 +1,212 @@
|
|||
//************************************************** ****************************
|
||||
// Call of Duty 4
|
||||
//************************************************** ****************************
|
||||
//************************************************** ****************************
|
||||
// Public Information
|
||||
//************************************************** ****************************
|
||||
sets sv_hostname "^1:|BONES|: ^7HardCore Tactical S&D"
|
||||
sets _Admin "Admin"
|
||||
sets _Email "admin@clanbones.com"
|
||||
sets _Website "www.clanbones.com"
|
||||
sets _Location "Chicago Server"
|
||||
sets _Irc ""
|
||||
sets _Mod ""
|
||||
sets _ModVer ""
|
||||
sets _ModUpdate ""
|
||||
sets _Maps "COD4 Stock"
|
||||
set scr_motd "Welcome to the BONES COD4 Server - We are recruiting"
|
||||
|
||||
//************************************************** ****************************
|
||||
// Common Server Settings
|
||||
//************************************************** ****************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0=no log, 1=buffered, 2=continuous, 3=append
|
||||
set logfile "1" // 0 = NO log, 1 = log file enabled
|
||||
set g_log "games_mp.log" // Name of log file, default is games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network options
|
||||
set net_ip "64.182.97.58" // Set your servers IP address
|
||||
set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master servers
|
||||
set sv_master1 "cod2master.activision.com"
|
||||
set sv_master2 "cod2authorize.activision.com"
|
||||
set sv_master3 "cod2master.infinityward.com"
|
||||
set sv_master3 "cod2update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "yourpass" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
|
||||
// The following can be used to lock out the server so that only those
|
||||
// players that have been provide the password can connect. Good for
|
||||
// matches, practices, etc.
|
||||
set g_password ""
|
||||
|
||||
// Player slots setup
|
||||
set sv_maxclients "32" // MAX server player slots, this is TOTAL player slots
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, any lower and player isnt allowed to connect
|
||||
set sv_maxping "250" // MAX player ping on CONNECT, any higher and player isnt allowed to connect
|
||||
|
||||
// Client Download Settings. (0=off/1=on) Used for MODs and custom maps
|
||||
// See included Quick Setup Guide for instructions.
|
||||
set sv_allowdownload "0"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "1"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "25000"
|
||||
|
||||
|
||||
// Drop inactive players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// AntiFlooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
pb_sv_enable
|
||||
wait 5
|
||||
set sv_punkbuster "1"
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
|
||||
// Temporary Ban duration, in seconds
|
||||
set sv_kickBanTime "3600"
|
||||
|
||||
// In-game voice communication system
|
||||
set sv_voice "1"
|
||||
set sv_voiceQuality "4"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//************************************************** ****************************
|
||||
// Misc
|
||||
//************************************************** ****************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_antilag "0"
|
||||
set g_compassShowEnemies "0"
|
||||
set scr_hardcore "1"
|
||||
set g_allowvote "0"
|
||||
set scr_allow_vote "0"
|
||||
set scr_teambalance "1"
|
||||
set ui_hud_hardcore "1" //What is this?
|
||||
set scr_game_allowkillcam "0"
|
||||
set scr_game_onlyheadshots "0"
|
||||
set scr_game_deathpointloss "0"
|
||||
set scr_game_suicidepointloss "0"
|
||||
set scr_team_teamkillpointloss "1"
|
||||
set scr_game_spectatetype "1" // [0-2] 0=none, 1= team only, 2=spectate all
|
||||
set scr_team_fftype "1" // 0=off 1=on 2=reflect damage 3=shared
|
||||
|
||||
|
||||
//================================================== ===============================
|
||||
// Gametype Settings
|
||||
//================================================== ===============================
|
||||
|
||||
// First gametype to load
|
||||
// "dm" - free for all deathmatch
|
||||
// "dom" - domination
|
||||
// "koth" - headquarters
|
||||
// "sab" - sabotage
|
||||
// "sd" - search & destroy
|
||||
// "war" - team deathmatch
|
||||
|
||||
// Deathmatch
|
||||
set scr_dm_scorelimit 150
|
||||
set scr_dm_timelimit 10
|
||||
set scr_dm_roundlimit 1
|
||||
set scr_dm_numlives 0
|
||||
set scr_dm_playerrespawndelay -1
|
||||
set scr_dm_waverespawndelay 0
|
||||
|
||||
|
||||
// Domination
|
||||
set scr_dom_scorelimit 200
|
||||
set scr_dom_timelimit 0
|
||||
set scr_dom_roundlimit 1
|
||||
set scr_dom_numlives 0
|
||||
set scr_dom_playerrespawndelay -1
|
||||
set scr_dom_waverespawndelay 0
|
||||
|
||||
|
||||
// Teamdeath Match
|
||||
set scr_war_scorelimit 750
|
||||
set scr_war_timelimit 10
|
||||
set scr_war_roundlimit 1
|
||||
set scr_war_numlives 0
|
||||
set scr_war_playerrespawndelay -1
|
||||
set scr_war_waverespawndelay 0
|
||||
|
||||
// Sabotoge
|
||||
set scr_sab_scorelimit 3
|
||||
set scr_sab_timelimit 10
|
||||
set scr_sab_roundlimit 3
|
||||
set scr_sab_roundswitch 1
|
||||
set scr_sab_numlives 0
|
||||
set scr_sab_bombtimer 30
|
||||
set scr_sab_planttime 3
|
||||
set scr_sab_defusetime 3
|
||||
set scr_sab_hotpotato 0
|
||||
set scr_sab_playerrespawndelay -1
|
||||
set scr_sab_waverespawndelay -1
|
||||
|
||||
// King of the Hill
|
||||
set scr_koth_scorelimit 250
|
||||
set scr_koth_timelimit 15
|
||||
set scr_koth_roundlimit 1
|
||||
set scr_koth_roundswitch 1
|
||||
set scr_koth_numlives 0
|
||||
set scr_koth_playerrespawndelay -1
|
||||
set scr_koth_waverespawndelay 0
|
||||
set koth_autodestroytime 60
|
||||
set koth_spawntime 0
|
||||
set koth_kothmode 0
|
||||
set koth_capturetime 20
|
||||
set koth_destroytime 10
|
||||
set koth_delayPlayer 0
|
||||
set koth_spawnDelay 60
|
||||
|
||||
// Search and Destroy
|
||||
set scr_sd_scorelimit 6
|
||||
set scr_sd_timelimit 3
|
||||
set scr_sd_roundlimit 0
|
||||
set scr_sd_roundswitch 3 // rounds between switching teams
|
||||
set scr_sd_numlives 1 // elimination
|
||||
set scr_sd_bombtimer 60
|
||||
set scr_sd_planttime 7
|
||||
set scr_sd_defusetime 7
|
||||
set scr_sd_multibomb 0
|
||||
set scr_sd_playerrespawndelay -1
|
||||
set scr_sd_waverespawndelay 0
|
||||
|
||||
// Team-Balance and Voting
|
||||
set scr_teambalance "1"
|
||||
set g_allowvote "0"
|
||||
|
||||
set sv_mapRotation "gametype sd map mp_bloc gametype sd map mp_backlot gametype sd map mp_crash gametype sd map mp_convoy gametype sd map mp_vacant gametype sd map mp_bog gametype sd map mp_pipeline gametype sd map mp_farm gametype sd map mp_crossfire gametype sd map mp_overgrown gametype sd map mp_citystreets gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_cargoship gametype sd map mp_countdown"
|
|
@ -0,0 +1,345 @@
|
|||
//************************************************** ****************************
|
||||
// Call of Duty 4
|
||||
//************************************************** ****************************
|
||||
//************************************************** ****************************
|
||||
// Public Information - taken from http://forums.gameservers.com/viewto...000&highlight=
|
||||
//************************************************** ****************************
|
||||
sets sv_hostname "^5>E*V< ^2European Vikings *RECRUITING"
|
||||
sets _Admin "LordAragorn"
|
||||
sets _Email "lordaragorns@hotmail.com"
|
||||
sets _Website "http://www.europeanvikings.mojforum.si"
|
||||
sets _Location "EUROPE"
|
||||
sets _Irc ""
|
||||
sets _Mod "sd"
|
||||
sets _ModVer "1.4"
|
||||
sets _ModUpdate "yes"
|
||||
sets _Maps "COD2 Stock"
|
||||
set scr_motd "Welcome on >E*V< server. Visit us on http://www.europeanvikings.mojforum.si/"
|
||||
|
||||
//************************************************** ****************************
|
||||
// Common Server Settings
|
||||
//************************************************** ****************************
|
||||
// Log Settings
|
||||
set g_logsync "2"
|
||||
set logfile "1"
|
||||
set g_log "games_mp.log"
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network options
|
||||
set net_ip "213.19.131.32" // Set your servers IP address
|
||||
set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
// Password Settings
|
||||
set rcon_password "*****" //SET HERE YOUR OWN PASSWORD
|
||||
set sv_privatePassword ""
|
||||
|
||||
// The following can be used to lock out the server so that only those
|
||||
// players that have been provide the password can connect. Good for
|
||||
// matches, practices, etc.
|
||||
set g_password ""
|
||||
|
||||
// Player slots setup
|
||||
set sv_maxclients "16" // MAX server player slots, this is TOTAL player slots
|
||||
set sv_privateclients ""
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0"
|
||||
set sv_maxping "350"
|
||||
|
||||
// Client Download Settings. (0=off/1=on) Used for MODs and custom maps
|
||||
// See included Quick Setup Guide for instructions.
|
||||
set sv_allowdownload "1"
|
||||
seta sv_wwwDownload "0"
|
||||
seta sv_wwwBaseURL ""
|
||||
seta sv_wwwDlDisconnected "1"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "25000"
|
||||
|
||||
|
||||
// Drop inactive players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// AntiFlooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "1"
|
||||
|
||||
// Temporary Ban duration, in seconds
|
||||
set sv_kickBanTime "3600"
|
||||
|
||||
// In-game voice communication system
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//************************************************** ****************************
|
||||
// Misc
|
||||
//************************************************** ****************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_antilag "0"
|
||||
set g_compassShowEnemies "0"
|
||||
//ui_maxclients 32
|
||||
|
||||
//************************************************** ****************************
|
||||
// limits the number of players that can choose each class type
|
||||
//************************************************** ****************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//************************************************** ****************************
|
||||
// perks
|
||||
//************************************************** ****************************
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// assault class default loadout
|
||||
//************************************************** ****************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// specops class default loadout
|
||||
//************************************************** ****************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// heavygunner class default loadout
|
||||
//************************************************** ****************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// demolitions class default loadout
|
||||
//************************************************** ****************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// sniper class default loadout
|
||||
//************************************************** ****************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//************************************************** ****************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Assault Rifles
|
||||
//************************************************** ****************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Assault Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 0
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// SMG
|
||||
//************************************************** ****************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// SMG Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Shotguns
|
||||
//************************************************** ****************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Shotgun Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// LMG
|
||||
//************************************************** ****************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// LMG Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Sniper Rifles
|
||||
//************************************************** ****************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Sniper Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Pistols
|
||||
//************************************************** ****************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Pistol Attachments
|
||||
//************************************************** ****************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// Grenades
|
||||
//************************************************** ****************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
|
||||
//************************************************** ****************************
|
||||
// First gametype to load
|
||||
// "dm" - free for all deathmatch
|
||||
// "dom" - domination
|
||||
// "koth" - headquarters
|
||||
// "sab" - sabotage
|
||||
// "sd" - search & destroy
|
||||
// "war" - team deathmatch
|
||||
//************************************************** ****************************
|
||||
set g_gametype "sd"
|
||||
|
||||
|
||||
set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant"
|
|
@ -0,0 +1,191 @@
|
|||
This gives a sample server.cfg here with an explanation of what the command does. I bet most people do not know what things can set up,:) The file is copied (info below), but I added my minor modifications.
|
||||
|
||||
|
||||
|
||||
/
|
||||
Quote:
|
||||
/ Server.cfg PL
|
||||
/ / To _KaszpiR_ http://nvt.prv.pl
|
||||
/ / Modified by Trawiator'a
|
||||
/ / Ver 0.6A 2005-11-24
|
||||
|
||||
|
||||
/ / Then start hlds with parameter + servercfgfile server.cfg
|
||||
/ / For example. / Hlds_run-game cstrike + map de_dust + servercfgfile server.cfg
|
||||
|
||||
/ / Config is the preparation parameters on the FFA server
|
||||
|
||||
|
||||
/ / Basic setup
|
||||
|
||||
sv_lan 1 / / set to 1 if it is the only server on the lan to Nonsteam always have to be
|
||||
maxplayers 20 / / maximum number of players, remember that the reservation systems of slots on a server usually takes 2 slots
|
||||
sv_visiblemaxplayers 16 / / number of visible slots on the server, -1 if it is automatically calculated (standard)
|
||||
/ / But then you must manually from the console to napisc server address to connect to (if the server is full)
|
||||
/ / Set the example, the value of 20 and 22 have maxplayers and in fact you have 2 free slots on the server
|
||||
|
||||
|
||||
banned.cfg exec / recharge bans SteamID / wonid
|
||||
Listip.cfg exec / ip bans on recharge
|
||||
|
||||
hostname "Server Name" / / server name servers as seen through the browser (eg in favourities)
|
||||
mapchangecfgfile "server.cfg" / / do this confgi during map changes (eg to restore the old settings)
|
||||
mapcyclefile "mapcycle.txt" / / file contains a list of map by which to play after the end of the game
|
||||
motdfile "motd.txt" / / filename to display as you enter the server, this is what people do not read:)
|
||||
servercfgfile "server.cfg" / / file with major settings on the server, fired on first startup
|
||||
|
||||
sv_proxies 1 / / number of hltv proxy that can connect to a server, a standard, more is not recommended
|
||||
sv_region 3 / / because we are in Europe set 3
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Performance
|
||||
|
||||
fps_max 100 / / how many fps the server should have an average, the best that was around 100, but no greater than 200
|
||||
/ / Otherwise the server consumes too much CPU
|
||||
|
||||
sys_ticrate 125 / / 125 warosc is recommended, it is best not to have more than 200, some games require 1000 but hosting companies may enforce the value of the lower
|
||||
/ / 10 000 is the extreme values, only the cast for the scavengers
|
||||
/ / Usually only eats CPU niepotrzbnie
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Net
|
||||
|
||||
sv_maxrate 8000 / / maximum value which the server can send to each client individually,
|
||||
/ / Set value of less than 4000 players and server zlaguje
|
||||
/ / At lan 20000
|
||||
/ / Web server - zalzy to join together, try the 9999 if you have a lag, possibly gradually mzniejszaj 500
|
||||
|
||||
sv_maxupdaterate 100 / / maximum value which the customer may have cl_updaterate,
|
||||
/ / If no more are lost packets will have
|
||||
|
||||
sv_minrate 0 / / minimum value of what the server can send to each client individually, default 0,
|
||||
/ / Set the values of over 6000 zlaguje server and players
|
||||
/ / Recommended to krzymanie 0 value because of HLTV servers - you can just save up money for the link
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Rcon and password
|
||||
|
||||
sv_password "/ / password required to connect to server
|
||||
/ / Ustawnaie Most servers or clan during a match
|
||||
|
||||
/ / Rcon_password "soup" / / rcon password in the not recommended to umeszczac here, it's better if you give the parameters of the firing of the server
|
||||
/ / If you set "" it will not work rcon
|
||||
/ / Eg + rcon_password "soup"
|
||||
|
||||
sv_rcon_banpenalty 1 / / turn on the penalties for attempts to use the wrong rcon'a (banish the ip)
|
||||
sv_rcon_minfailures 5 / / limit bad rcon commands to get ban'a
|
||||
sv_rcon_minfailuretime 30 / / time in which attempts are checked rcon,
|
||||
/ / As someone enters rcon_password bad (or not give) and perform rcon commands too much to get a ban
|
||||
/ / If only to help restart the server
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Logs
|
||||
/ / Recommended to preserve these settings if you wish to use or PsychoStats hlstats
|
||||
|
||||
mp_logdetail 3 / / level logs, 0 - disable, 1 - only to hit an opponent standard, 2, - just hit tp, 3 - both log (tp and hostile)
|
||||
mp_logecho 1 / / 1 - turns on the login command echo, 0 - off, such as you have in server.cfg echo SERVER CFG LOADED it will have is logged
|
||||
mp_logfile 1 / / login multiplayer events (end of round, etc.), 1 - yes (standard), 0 - no
|
||||
mp_logmessages 1 / / log the commands say (chat), 1 - yes (standard), 0 - no
|
||||
sv_logbans 1 / / log giving the ban, 1 - yes (standard), 0 - no
|
||||
sv_logblocks 1 / / log blocked attempts to change the value of proprietary variable, 1 - yes (standard), 0 - no
|
||||
sv_logrelay 1 / / log connect an hltv proxy relay, 1 - yes (standard), 0 - no
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Voice
|
||||
|
||||
sv_voicecodec "voice_speex" / / codec type, default voice_miles, recommended voice_speex - better quality at the expense of a few percent of CPU usage
|
||||
sv_voiceenable 1 / / use options on the voice server, 1 - yes (default), 0 - no
|
||||
sv_voicequality 5 / / voice quality, from 1 to 5, the more the better but the slingshot and a higher usage of the network
|
||||
sv_alltalk 0 / / 0 - (default) voice only works if, and only alive to the tp, 1 - everyone can talk with each (at the beginning and end of the match)
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Downlad
|
||||
/ / Recommended to preserve these values in order not to have problems with downloading files from the server
|
||||
|
||||
hpk_maxsize 1 / / maximum size of the sum of the logo Cyprus of all players on the server, in megabytes
|
||||
/ / Recommended value of 2 mega
|
||||
/ / Set the arrow buttons are too high will cause the players will disconnectowani (because it must suck)
|
||||
/ / The server will load the slower pace in August
|
||||
sv_allowdownload 1 / / allow to download, 1 - yes (standard), 0 - no
|
||||
sv_allowupload 1 / / allow to upload (eg logos), 1 - yes (standard), 0 - no
|
||||
sv_send_logos 1 / / allow players to send the logo (spray on the wall)
|
||||
sv_send_resources 1 / / allow to dowload the list of required files to play on a map, 1 - yes (standard), 0 - no
|
||||
/ / Sv_downloadurl "http://szambo/hlds/dlurl/" / / url to the site where you can suck the files server (remember to restrict access to important files - addons folder, server.cfg, etc)
|
||||
mp_decals 300 / / maximum logo displayed on the server, etc.
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Game
|
||||
mp_autoteambalance 0 / / flip players to other teams if the difference in configurations, 0 - no (default), 1 - yes
|
||||
mp_buytime 0.50 / / time to buy at the beginning of the round, in a fraction of a minute (one minute = 1.0, 30 seconds = 0.25)
|
||||
mp_c4timer 35 / / time in seconds to disarm the bomb (otherwise will bum:), default 35
|
||||
mp_flashlight 1 / / 1 - You can use the flashlight (standard), 0 - disabled torch
|
||||
mp_footsteps 1 / / 1 - players can hear the steps while running (standard), 0 - disabled (Quake 1 mode), good for exercises reflex:)
|
||||
mp_freezetime 1 / / time in seconds pause at the beginning of the round (to reload and purchase of arms), set to 0 on maps aim
|
||||
mp_friendly_grenade_damage 1 / / 0 - tp grenades do not hurt (but zabiebraja armor), 1 - grenades Rania players from the team (standard)
|
||||
mp_friendlyfire 1 / / 0 - how to shoot his latter did not hurt, 1 - hurt their (standard)
|
||||
mp_ghostfrequency 0.1 / / refresh rate for observer status
|
||||
mp_hostagepenalty 0 / / number to kill the hostages after which you get a kick, 0 - disabled
|
||||
mp_limitteams 0 / / how many players can be unbalanced by jedej of the teams, 0 - no limit, 2 - maxymalnie may be in one of the teams 2 players More
|
||||
mp_maxrounds 0 / / maximum number of rounds to play, 0 - no limit (standard)
|
||||
mp_mirrordamage 0 / / how to hit her so jabys hit each other, default 0, 1 - turn on (not recommended)
|
||||
mp_roundtime 2.5 / / duration in minutes of the round, the standard is 3 minutes, or 1.75 for a quick game (not to get bored on the sown), values from 1 to 9
|
||||
mp_startmoney 800 / / number of cash at the beginning of the round
|
||||
mp_timelimit 20 / / limit play time on a map (after the change of the map), in minutes, set to 0 for no time limit,
|
||||
mp_tkpunish 0 / / punishment of death at the beginning of the next round for killing her, 0 - no (default), 1 - yes
|
||||
mp_winlimit 0 / / limit of rounds to win as any team reaches the value is a change in the map, 0 - no limit (standard)
|
||||
mp_payerid 0 / / displays the player's nickname after nacelowaniu, 0 - see wsztkich (in color) (standard), 1 - only tp and hostages, 2 - no one shows
|
||||
pausable 0 / / 0 (standard) does not allow players to pause the game on the server, 1 - allows time for the games in August so sets
|
||||
sv_maxspeed 320 / / maximum speed gear player, standard (320)
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Observers
|
||||
|
||||
allow_spectators 1 / / allow the observer (a person completely not playing), 1 - yes (standard), 0 - no,
|
||||
mp_fadetoblack 0 / / 1 - the screen gets dark after the death of a player (required for some games), 0 - without darkening
|
||||
mp_forcecamera 1 / / overextend spectarora for: 0 - do not overextend, 1 - view from the eyes and chase the player mode, 2 - only the player's eye view, the recommended value of 1 or 2
|
||||
mp_forcechasecam 1 / / 0 - player can fly around the map, 1 - you can watch your typo tp, 2 - the client does not move from place where he died
|
||||
|
||||
mp_autokick 0 / / auto-kicking for killing their long, or not sure the place of moving the
|
||||
sv_timeout 90 / / time in seconds, if a player does not respond at this time is considered to be disconnected from the server (as someone in August Comp zwiesi / die for moments of connection)
|
||||
sv_spectatormaxspeed 900 / / maximum flying speed of the observer, normally a player runs at a speed of 320, the standard is 500
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Other
|
||||
|
||||
mp_autocrosshair 0 / / default 0
|
||||
sv_aim 0 / / 0 ((standard) autocelowanie off, 1 - enable auto aim (not recommended)
|
||||
sv_airaccelerate 10 / / akcleracja in the air (bunnyjump), the value from 0 to 10, 10 standard
|
||||
sv_airmove 1 / / allows you to move in the air (bunnyjump), 1 - yes (standard), 0 - no
|
||||
sv_challengetime 180 / / time in seconds if the player does not connect to the game at that time will be deemed to be disconnected, increase if the players have a lot of weak Comps or recover from a server: D
|
||||
sv_cheats 0 / / 0 (standard) does not allow commands give weapon, god, noclip and stuff, 1 - to developers or serwero maps for fun
|
||||
sv_clienttrace 1 / / (standard) 1
|
||||
sv_friction 4 / / slip on the surface while running, has an effect on the speed of the complete arrest in August, 4 (standard)
|
||||
sv_gravity 800 / / gravity, default 800, the more the harder it is to jump (with some small values of the descent of the stair is a lethal grenades fall down under their feet)
|
||||
/ / 0 off gravitation - as it already does not jump fall
|
||||
/ / Value of 100, 200, 400 sanajczesciej found on servers niekonwecjonalnych
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Status of the server via web
|
||||
/ / Check the status of the server also consumes little CPU and join together, the default values are adequate
|
||||
|
||||
max_queries_global 20 / / how often you can check the status of the total server
|
||||
max_queries_sec 3 / / how often the customer can check the status of the server (all seeing eye, scripts www)
|
||||
max_queries_window 30 / / size of the time window to check the requests, as you are having problems in HLSW timeout set to 10
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////// /////////////////////////////////////////////////
|
||||
/ / Extra configs
|
||||
/ / Exec addons / wwcl / scripts / wwcl_config.cfg / / do confgi wwcl (if you have this plugin, and how not to do wrong will not happen)
|
||||
/ / Exec addons / cdeath / cdeath.cfg / / do confgi Cheating-Death (if you have this plugin, and how not to do wrong will not happen)
|
||||
|
||||
|
||||
|
||||
Say server settings loaded
|
||||
/ / End
|
|
@ -0,0 +1,422 @@
|
|||
//******************************************************************************
|
||||
// Call of Duty 4 - Config by Tally and Joker
|
||||
//******************************************************************************
|
||||
//******************************************************************************
|
||||
// Public Information
|
||||
//******************************************************************************
|
||||
sets sv_hostname "Your Server Name"
|
||||
sets _Admin "admin"
|
||||
sets _Email "admin AT yoursite DOT com"
|
||||
sets _Website "http://www.cod4boards.com"
|
||||
sets _Location "US"
|
||||
sets _Irc ""
|
||||
sets _Mod "Your fs_game"
|
||||
sets _ModVer "1.0"
|
||||
sets _ModUpdate "3Right Now"
|
||||
sets _Maps "COD2 Stock"
|
||||
set scr_motd "cod4boards.com"
|
||||
|
||||
//******************************************************************************
|
||||
// Common Server Settings
|
||||
//******************************************************************************
|
||||
// Log Settings
|
||||
set g_logsync "2" // 0=no log, 1=buffered, 2=continuous, 3=append
|
||||
set logfile "1" // 0 = NO log, 1 = log file enabled
|
||||
set g_log "games_mp.log" // Name of log file, default is games_mp.log
|
||||
set sv_log_damage "1"
|
||||
|
||||
// Network options
|
||||
//set net_ip "1.2.3.4" // Set your servers IP address
|
||||
//set net_port "28960" // Set your port number
|
||||
set com_hunkMegs "512"
|
||||
set net_noipx "1" // Allow ONLY tcp/ip protocol, player/server communications
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated "2" // 0 = Listen, 1 = LAN, 2 = Internet
|
||||
|
||||
// Master servers
|
||||
set sv_master1 "cod2master.activision.com"
|
||||
set sv_master2 "cod2authorize.activision.com"
|
||||
set sv_master3 "cod2master.infinityward.com"
|
||||
set sv_master3 "cod2update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
||||
|
||||
// Password Settings
|
||||
set rcon_password "somepass" // RCON must supply pw to use
|
||||
set sv_privatePassword "" // Private slots, non-public slots
|
||||
|
||||
// The following can be used to lock out the server so that only those
|
||||
// players that have been provide the password can connect. Good for
|
||||
// matches, practices, etc.
|
||||
set g_password ""
|
||||
|
||||
// Player slots setup
|
||||
set sv_maxclients "32" // MAX server player slots, this is TOTAL player slots
|
||||
set sv_privateclients "" // Number of private player slots, maxclients - privateclients = public slots
|
||||
|
||||
// Ping
|
||||
set sv_minPing "0" // MIN player ping on CONNECT, any lower and player isnt allowed to connect
|
||||
set sv_maxping "350" // MAX player ping on CONNECT, any higher and player isnt allowed to connect
|
||||
|
||||
// Client Download Settings. (0=off/1=on) Used for MODs and custom maps
|
||||
// See included Quick Setup Guide for instructions.
|
||||
set sv_allowdownload "1"
|
||||
seta sv_wwwDownload "1"
|
||||
seta sv_wwwBaseURL "http://www.xxx.xxx.xx"
|
||||
seta sv_wwwDlDisconnected "1"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "5000"
|
||||
|
||||
// FPS
|
||||
//set sv_fps "20"
|
||||
|
||||
// Drop inactive players
|
||||
set sv_timeout "300"
|
||||
set sv_zombietime "1"
|
||||
set g_inactivity "0"
|
||||
set g_inactivityspectator "0"
|
||||
|
||||
// AntiFlooding Settings
|
||||
set sv_floodProtect "1"
|
||||
set sv_reconnectlimit "3"
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole "0"
|
||||
set cl_autocmd "0"
|
||||
set sv_cheats "0"
|
||||
set sv_pure "1"
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam "1"
|
||||
set sv_punkbuster "0"
|
||||
|
||||
// Temporary Ban duration, in seconds
|
||||
set sv_kickBanTime "3600"
|
||||
|
||||
// In-game voice communication system
|
||||
set sv_voice "0"
|
||||
set sv_voiceQuality "1"
|
||||
set voice_deadChat "0"
|
||||
set voice_global "0"
|
||||
set voice_localEcho "0"
|
||||
set winvoice_mic_mute "1"
|
||||
|
||||
//******************************************************************************
|
||||
// Misc
|
||||
//******************************************************************************
|
||||
set sv_allowAnonymous "0"
|
||||
set g_antilag "0"
|
||||
set g_compassShowEnemies "0"
|
||||
//ui_maxclients 32
|
||||
|
||||
//******************************************************************************
|
||||
// limits the number of players that can choose each class type
|
||||
//******************************************************************************
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 99
|
||||
|
||||
//******************************************************************************
|
||||
// perks
|
||||
//******************************************************************************
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 1
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 1
|
||||
set perk_allow_specialty_grenadepulldeath 1
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 1
|
||||
|
||||
//******************************************************************************
|
||||
// assault class default loadout
|
||||
//******************************************************************************
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment gl
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_null
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_longersprint
|
||||
set class_assault_grenade concussion_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// specops class default loadout
|
||||
//******************************************************************************
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 c4_mp
|
||||
set class_specops_perk2 specialty_explosivedamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// heavygunner class default loadout
|
||||
//******************************************************************************
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_armorvest
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade concussion_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// demolitions class default loadout
|
||||
//******************************************************************************
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 rpg_mp
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
//******************************************************************************
|
||||
// sniper class default loadout
|
||||
//******************************************************************************
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_specialgrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 1
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
//******************************************************************************
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
//******************************************************************************
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
//******************************************************************************
|
||||
// Assault Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 1
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG
|
||||
//******************************************************************************
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
//******************************************************************************
|
||||
// SMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotguns
|
||||
//******************************************************************************
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
//******************************************************************************
|
||||
// Shotgun Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG
|
||||
//******************************************************************************
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
//******************************************************************************
|
||||
// LMG Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Rifles
|
||||
//******************************************************************************
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
//******************************************************************************
|
||||
// Sniper Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistols
|
||||
//******************************************************************************
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
//******************************************************************************
|
||||
// Pistol Attachments
|
||||
//******************************************************************************
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
//******************************************************************************
|
||||
// Grenades
|
||||
//******************************************************************************
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 1
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
|
||||
//******************************************************************************
|
||||
// First gametype to load
|
||||
// "dm" - free for all deathmatch
|
||||
// "dom" - domination
|
||||
// "koth" - headquarters
|
||||
// "sab" - sabotage
|
||||
// "sd" - search & destroy
|
||||
// "war" - team deathmatch
|
||||
//******************************************************************************
|
||||
set g_gametype "dm"
|
||||
|
||||
//******************************************************************************
|
||||
// DM -- FREE FOR ALL DEATHMATCH
|
||||
//******************************************************************************
|
||||
set sv_mapRotation "gametype dm map mp_backlot gametype dm map mp_bloc gametype dm map mp_bog gametype dm map mp_cargoship
|
||||
|
||||
gametype dm map mp_citystreets gametype dm map mp_convoy gametype dm map mp_countdown gametype dm map mp_crash gametype
|
||||
|
||||
dm map mp_crossfire gametype dm map mp_farm gametype dm map mp_overgrown gametype dm map mp_pipeline gametype dm map
|
||||
|
||||
mp_shipment gametype dm map mp_showdown gametype dm map mp_strike gametype dm map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// DOM -- DOMINATION
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype dom map mp_backlot gametype dom map mp_bloc gametype dom map mp_bog gametype dom map
|
||||
|
||||
mp_cargoship gametype dom map mp_citystreets gametype dom map mp_convoy gametype dom map mp_countdown gametype dom map
|
||||
|
||||
mp_crash gametype dom map mp_crossfire gametype dom map mp_farm gametype dom map mp_overgrown gametype dom map mp_pipeline
|
||||
|
||||
gametype dom map mp_shipment gametype dom map mp_showdown gametype dom map mp_strike gametype dom map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// KOTH -- HEADQUARTERS
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype koth map mp_backlot gametype koth map mp_bloc gametype koth map mp_bog gametype koth map
|
||||
|
||||
mp_cargoship gametype koth map mp_citystreets gametype koth map mp_convoy gametype koth map mp_countdown gametype koth map
|
||||
|
||||
mp_crash gametype koth map mp_crossfire gametype koth map mp_farm gametype koth map mp_overgrown gametype koth map mp_pipeline
|
||||
|
||||
gametype koth map mp_shipment gametype koth map mp_showdown gametype koth map mp_strike gametype koth map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SAB -- SABOTAGE
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype sab map mp_backlot gametype sab map mp_bloc gametype sab map mp_bog gametype sab map
|
||||
|
||||
mp_cargoship gametype sab map mp_citystreets gametype sab map mp_convoy gametype sab map mp_countdown gametype sab map
|
||||
|
||||
mp_crash gametype sab map mp_crossfire gametype sab map mp_farm gametype sab map mp_overgrown gametype sab map mp_pipeline
|
||||
|
||||
gametype sab map mp_shipment gametype sab map mp_showdown gametype sab map mp_strike gametype sab map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// SD -- SEARCH & DESTROY
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_bloc gametype sd map mp_bog gametype sd map mp_cargoship
|
||||
|
||||
gametype sd map mp_citystreets gametype sd map mp_convoy gametype sd map mp_countdown gametype sd map mp_crash gametype sd
|
||||
|
||||
map mp_crossfire gametype sd map mp_farm gametype sd map mp_overgrown gametype sd map mp_pipeline gametype sd map
|
||||
|
||||
mp_shipment gametype sd map mp_showdown gametype sd map mp_strike gametype sd map mp_vacant"
|
||||
|
||||
//******************************************************************************
|
||||
// WAR -- TEAM DEATH MATCH
|
||||
//******************************************************************************
|
||||
//set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map
|
||||
|
||||
mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map
|
||||
|
||||
mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline
|
||||
|
||||
gametype war map mp_shipment gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
|
@ -0,0 +1,38 @@
|
|||
seta sv_punkbuster 1
|
||||
wait
|
||||
pb_sv_enable
|
||||
|
||||
// Server name
|
||||
set sv_hostname "your server name" //Change this to whatever you want your server to be named in the server browser
|
||||
|
||||
// Server password
|
||||
set g_password "" // blank means NO password
|
||||
|
||||
// Rconpassword
|
||||
set rcon_password "" // Change this to your rcon password!
|
||||
|
||||
// Maximum Clients
|
||||
set sv_maxclients "32"
|
||||
//set sv_privateclients "6"
|
||||
|
||||
// Max Ping
|
||||
set sv_maxping "120"
|
||||
|
||||
// Rate
|
||||
set sv_maxRate "25000"
|
||||
|
||||
// Map_rotation
|
||||
set sv_mapRotation "gametype war map mp_backlot gametype war map mp_bloc gametype war map mp_bog gametype war map mp_cargoship gametype war map mp_citystreets gametype war map mp_convoy gametype war map mp_countdown gametype war map mp_crash gametype war map mp_crossfire gametype war map mp_farm gametype war map mp_overgrown gametype war map mp_pipeline gametype war map mp_showdown gametype war map mp_strike gametype war map mp_vacant"
|
||||
|
||||
//set sv_maprotationcurrent ""
|
||||
|
||||
// Master servers
|
||||
set sv_master1 "cod4master.activision.com"
|
||||
set sv_master2 "cod4authorize.activision.com"
|
||||
set sv_master3 "cod4master.infinityward.com"
|
||||
set sv_master3 "cod4update.activision.com"
|
||||
set sv_master4 "master.gamespy.com:28960"
|
||||
set sv_master5 "master0.gamespy.com"
|
||||
set sv_master6 "master1.gamespy.com"
|
||||
set sv_master7 "clanservers.net"
|
||||
set sv_gamespy "1"
|
|
@ -0,0 +1,352 @@
|
|||
// Call of Duty 4 - Config by Taher furious
|
||||
|
||||
// Public Information
|
||||
|
||||
sets sv_hostname "xxxxxx"
|
||||
set scr_motd "Welcome to xxxxxx"
|
||||
|
||||
// Common Server Settings
|
||||
|
||||
// Log Settings
|
||||
set g_logsync 2
|
||||
set logfile 1
|
||||
set g_log games_mp.log
|
||||
set sv_log_damage 1
|
||||
|
||||
// Network options
|
||||
//set net_ip 1.2.3.4
|
||||
//set net_port 28960
|
||||
set com_hunkMegs 512
|
||||
set net_noipx 1
|
||||
|
||||
// Server Network Mode
|
||||
set dedicated 0
|
||||
|
||||
// Master servers
|
||||
|
||||
set g_gametype war
|
||||
set scr_war_scorelimit 1000
|
||||
set scr_war_timelimit 10
|
||||
|
||||
set g_allowvote 0
|
||||
set scr_allow_vote 0
|
||||
|
||||
// Password Settings
|
||||
|
||||
set rcon_password furious
|
||||
set sv_privatePassword ""
|
||||
set g_password ""
|
||||
|
||||
// Player slots setup
|
||||
set sv_maxclients 11
|
||||
set sv_privateclients ""
|
||||
|
||||
// Ping
|
||||
set sv_minPing 0
|
||||
set sv_maxping 999
|
||||
|
||||
// Client Download Settings.Used for MODs and custom maps
|
||||
set sv_allowdownload 1
|
||||
seta sv_wwwDownload 1
|
||||
seta sv_wwwBaseURL
|
||||
seta sv_wwwDlDisconnected 1
|
||||
|
||||
// Rate
|
||||
set sv_maxRate 30000
|
||||
|
||||
// FPS
|
||||
set sv_fps 150
|
||||
|
||||
// Drop inactive players
|
||||
set sv_timeout 300
|
||||
set sv_zombietime 1
|
||||
set g_inactivity 0
|
||||
set g_inactivityspectator 0
|
||||
|
||||
// AntiFlooding Settings
|
||||
set sv_floodProtect 1
|
||||
set sv_reconnectlimit 3
|
||||
|
||||
// Anti Cheat Settings
|
||||
set sv_disableClientConsole 0
|
||||
set cl_autocmd 0
|
||||
set sv_cheats 0
|
||||
set sv_pure 1
|
||||
set g_banIPs ""
|
||||
set g_no_script_spam 1
|
||||
set sv_punkbuster 0
|
||||
|
||||
// Temporary Ban duration, in seconds
|
||||
set sv_kickBanTime 3600
|
||||
|
||||
// In-game voice communication system
|
||||
set sv_voice 1
|
||||
set sv_voiceQuality 1
|
||||
set voice_deadChat 1
|
||||
set voice_global 0
|
||||
set voice_localEcho 0
|
||||
set winvoice_mic_mute 1
|
||||
|
||||
// Misc
|
||||
|
||||
set sv_allowAnonymous 0
|
||||
set g_antilag 0
|
||||
set g_compassShowEnemies 0
|
||||
//ui_maxclients 32
|
||||
|
||||
// player
|
||||
set scr_player_maxhealth 100
|
||||
set scr_player_suicidespawndelay 0
|
||||
set scr_player_healthregentime 5
|
||||
set scr_player_forcerespawn 1
|
||||
set scr_player_sprinttime 4
|
||||
|
||||
// teams
|
||||
set scr_teambalance 0
|
||||
set scr_team_fftype 1
|
||||
set scr_team_teamkillspawndelay 0
|
||||
set scr_team_kickteamkillers 0
|
||||
set scr_team_respawntime 0
|
||||
|
||||
// UI
|
||||
set scr_hardcore 0
|
||||
set scr_oldschool_mw 0
|
||||
set ui_hud_obituaries 1
|
||||
set ui_hud_showobjicons 1
|
||||
|
||||
// gameplay
|
||||
set scr_game_allowkillcam 0
|
||||
set scr_game_onlyheadshots 0
|
||||
set scr_game_deathpointloss 0
|
||||
set scr_game_suicidepointloss 0
|
||||
set scr_team_teamkillpointloss 1
|
||||
set scr_game_spectatetype 1
|
||||
set scr_game_forceuav 0
|
||||
set scr_game_hardpoints 0
|
||||
|
||||
// hardpoints
|
||||
set scr_hardpoint_allowartillery 0
|
||||
set scr_hardpoint_allowuav 0
|
||||
set scr_hardpoint_allowhelicopter 0
|
||||
|
||||
// limits the number of players that can choose each class type
|
||||
|
||||
set class_assault_limit 99
|
||||
set class_specops_limit 99
|
||||
set class_heavygunner_limit 99
|
||||
set class_demolitions_limit 99
|
||||
set class_sniper_limit 1
|
||||
|
||||
// perks
|
||||
|
||||
set perk_allow_specialty_parabolic 1
|
||||
set perk_allow_specialty_gpsjammer 0
|
||||
set perk_allow_specialty_holdbreath 1
|
||||
set perk_allow_specialty_quieter 1
|
||||
set perk_allow_specialty_longersprint 1
|
||||
set perk_allow_specialty_detectexplosive 1
|
||||
set perk_allow_specialty_explosivedamage 1
|
||||
set perk_allow_specialty_pistoldeath 0
|
||||
set perk_allow_specialty_grenadepulldeath 0
|
||||
set perk_allow_specialty_bulletdamage 1
|
||||
set perk_allow_specialty_bulletpenetration 1
|
||||
set perk_allow_specialty_bulletaccuracy 1
|
||||
set perk_allow_specialty_rof 1
|
||||
set perk_allow_specialty_fastreload 1
|
||||
set perk_allow_specialty_extraammo 1
|
||||
set perk_allow_specialty_armorvest 1
|
||||
set perk_allow_specialty_fraggrenade 1
|
||||
set perk_allow_specialty_specialgrenade 1
|
||||
set perk_allow_c4_mp 1
|
||||
set perk_allow_claymore_mp 1
|
||||
set perk_allow_rpg_mp 0
|
||||
|
||||
// class movespeed
|
||||
|
||||
set class_assault_movespeed 0.95
|
||||
set class_specops_movespeed 1.00
|
||||
set class_heavygunner_movespeed 0.875
|
||||
set class_demolitions_movespeed 1.00
|
||||
set class_sniper_movespeed 1.00
|
||||
|
||||
set scr_enable_nightvision 1
|
||||
set scr_enable_music 0
|
||||
set scr_enable_hiticon 1
|
||||
|
||||
// Enables Dropping of Specified Weapon Class
|
||||
|
||||
set class_assault_allowdrop 1
|
||||
set class_specops_allowdrop 1
|
||||
set class_heavygunner_allowdrop 1
|
||||
set class_demolitions_allowdrop 1
|
||||
set class_sniper_allowdrop 1
|
||||
|
||||
// Assault Rifles
|
||||
|
||||
set weap_allow_m16 1
|
||||
set weap_allow_ak47 1
|
||||
set weap_allow_m4 1
|
||||
set weap_allow_g3 1
|
||||
set weap_allow_g36c 1
|
||||
set weap_allow_m14 1
|
||||
set weap_allow_mp44 1
|
||||
|
||||
// Assault Attachments
|
||||
|
||||
set attach_allow_assault_none 1
|
||||
set attach_allow_assault_gl 0
|
||||
set attach_allow_assault_reflex 1
|
||||
set attach_allow_assault_silencer 1
|
||||
set attach_allow_assault_acog 0
|
||||
|
||||
// SMG
|
||||
|
||||
set weap_allow_mp5 1
|
||||
set weap_allow_skorpion 1
|
||||
set weap_allow_uzi 1
|
||||
set weap_allow_ak74u 1
|
||||
set weap_allow_p90 1
|
||||
|
||||
// SMG Attachments
|
||||
|
||||
set attach_allow_smg_none 1
|
||||
set attach_allow_smg_reflex 1
|
||||
set attach_allow_smg_silencer 1
|
||||
set attach_allow_smg_acog 0
|
||||
|
||||
// Shotguns
|
||||
|
||||
set weap_allow_m1014 1
|
||||
set weap_allow_winchester1200 1
|
||||
|
||||
// Shotgun Attachments
|
||||
|
||||
set attach_allow_shotgun_none 1
|
||||
set attach_allow_shotgun_reflex 1
|
||||
set attach_allow_shotgun_grip 1
|
||||
|
||||
// LMG
|
||||
|
||||
set weap_allow_saw 1
|
||||
set weap_allow_rpd 1
|
||||
set weap_allow_m60e4 1
|
||||
|
||||
// LMG Attachments
|
||||
|
||||
set attach_allow_lmg_none 1
|
||||
set attach_allow_lmg_reflex 1
|
||||
set attach_allow_lmg_grip 1
|
||||
set attach_allow_lmg_acog 0
|
||||
|
||||
// Sniper Rifles
|
||||
|
||||
set weap_allow_dragunov 1
|
||||
set weap_allow_m40a3 1
|
||||
set weap_allow_barrett 1
|
||||
set weap_allow_remington700 1
|
||||
set weap_allow_m21 1
|
||||
|
||||
// Sniper Attachments
|
||||
/
|
||||
set attach_allow_sniper_none 1
|
||||
set attach_allow_sniper_acog 0
|
||||
|
||||
// Pistols
|
||||
|
||||
set weap_allow_beretta 1
|
||||
set weap_allow_colt45 1
|
||||
set weap_allow_usp 1
|
||||
set weap_allow_deserteagle 1
|
||||
set weap_allow_deserteaglegold 1
|
||||
|
||||
// Pistol Attachments
|
||||
|
||||
set attach_allow_pistol_none 1
|
||||
set attach_allow_pistol_silencer 1
|
||||
|
||||
// Grenades
|
||||
|
||||
set weap_allow_frag_grenade 1
|
||||
set weap_allow_concussion_grenade 0
|
||||
set weap_allow_flash_grenade 1
|
||||
set weap_allow_smoke_grenade 1
|
||||
|
||||
// assault class default loadout
|
||||
|
||||
set class_assault_primary m16
|
||||
set class_assault_primary_attachment reflex
|
||||
set class_assault_secondary beretta
|
||||
set class_assault_secondary_attachment none
|
||||
set class_assault_perk1 specialty_fraggrenade
|
||||
set class_assault_perk2 specialty_bulletdamage
|
||||
set class_assault_perk3 specialty_bulletaccuracy
|
||||
set class_assault_grenade flash_grenade
|
||||
set class_assault_camo camo_none
|
||||
set class_assault_frags 1
|
||||
set class_assault_special 1
|
||||
|
||||
// specops class default loadout
|
||||
|
||||
set class_specops_primary mp5
|
||||
set class_specops_primary_attachment none
|
||||
set class_specops_secondary usp
|
||||
set class_specops_secondary_attachment silencer
|
||||
set class_specops_perk1 specialty_fraggrenade
|
||||
set class_specops_perk2 specialty_bulletdamage
|
||||
set class_specops_perk3 specialty_bulletaccuracy
|
||||
set class_specops_grenade flash_grenade
|
||||
set class_specops_camo camo_none
|
||||
set class_specops_frags 1
|
||||
set class_specops_special 1
|
||||
|
||||
// heavygunner class default loadout
|
||||
|
||||
set class_heavygunner_primary saw
|
||||
set class_heavygunner_primary_attachment none
|
||||
set class_heavygunner_secondary usp
|
||||
set class_heavygunner_secondary_attachment none
|
||||
set class_heavygunner_perk1 specialty_specialgrenade
|
||||
set class_heavygunner_perk2 specialty_bulletdamage
|
||||
set class_heavygunner_perk3 specialty_bulletpenetration
|
||||
set class_heavygunner_grenade flash_grenade
|
||||
set class_heavygunner_camo camo_none
|
||||
set class_heavygunner_frags 1
|
||||
set class_heavygunner_special 1
|
||||
|
||||
// demolitions class default loadout
|
||||
|
||||
set class_demolitions_primary winchester1200
|
||||
set class_demolitions_primary_attachment none
|
||||
set class_demolitions_secondary beretta
|
||||
set class_demolitions_secondary_attachment none
|
||||
set class_demolitions_perk1 specialty_fraggrenade
|
||||
set class_demolitions_perk2 specialty_explosivedamage
|
||||
set class_demolitions_perk3 specialty_longersprint
|
||||
set class_demolitions_grenade smoke_grenade
|
||||
set class_demolitions_camo camo_none
|
||||
set class_demolitions_frags 1
|
||||
set class_demolitions_special 1
|
||||
|
||||
// sniper class default loadout
|
||||
|
||||
set class_sniper_primary m40a3
|
||||
set class_sniper_primary_attachment none
|
||||
set class_sniper_secondary beretta
|
||||
set class_sniper_secondary_attachment silencer
|
||||
set class_sniper_perk1 specialty_fraggrenade
|
||||
set class_sniper_perk2 specialty_bulletdamage
|
||||
set class_sniper_perk3 specialty_bulletpenetration
|
||||
set class_sniper_grenade flash_grenade
|
||||
set class_sniper_camo camo_none
|
||||
set class_sniper_frags 1
|
||||
set class_sniper_special 1
|
||||
|
||||
|
||||
// First gametype to load
|
||||
// "dm" - free for all deathmatch
|
||||
// "dom" - domination
|
||||
// "koth" - headquarters
|
||||
// "sab" - sabotage
|
||||
// "sd" - search & destroy
|
||||
// "war" - team deathmatch
|
||||
//******************************************************************************
|
|
@ -0,0 +1,38 @@
|
|||
//promod live v2 - sample server config v1.1
|
||||
//for public ruleset customizations, see z_custom_ruleset.iwd
|
||||
|
||||
//info strings
|
||||
sets _Admin ""
|
||||
sets _Email ""
|
||||
sets _Website ""
|
||||
sets _Location ""
|
||||
sets sv_hostname "Promod LIVE V2.04"
|
||||
|
||||
//scorebot info strings, no need to modify
|
||||
sets __promod_attack_score "" // attackers info, score
|
||||
sets __promod_defence_score "" // defenders info, score
|
||||
sets __promod_ticker "" // the info ticker
|
||||
sets __promod_version "" // displays promod version
|
||||
sets __promod_mode "" // displays promod mode
|
||||
|
||||
//password settings
|
||||
set rcon_password "xxx" // remote console password
|
||||
set sv_privatePassword "" // private slots password
|
||||
set g_password "" // server password
|
||||
|
||||
//player slots, maxclients - privateclients = public slots
|
||||
set sv_maxclients 11 // maximum number of clients
|
||||
set sv_privateclients "" // number of private slots
|
||||
|
||||
//client download settings
|
||||
seta sv_wwwDownload "0" // enable download redirection
|
||||
seta sv_wwwBaseURL "" // defines url to download from
|
||||
seta sv_wwwDlDisconnected "0" // disconnect clients while downloading
|
||||
|
||||
//map rotation, change to your liking
|
||||
set sv_maprotationcurrent ""
|
||||
set sv_mapRotation "set sv_mapRotation "gametype sd map mp_backlot gametype sd map mp_crash gametype sd map mp_crossfire gametype sd map mp_citystreets gametype sd map mp_strike"
|
||||
|
||||
//promod settings
|
||||
set promod_mode "match_mr 12" // promod mode, for a list of promod modes see attached readme in your downloaded promod204 folder(you can change the number of max round by this command)
|
||||
set promod_enable_scorebot "0" // match-modes only
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
Q -// ****************************************************
|
||||
|
||||
Hello
|
||||
Since this afternoon, I cant play MW2, each time I load a mod with liberation, when the game opens, the screen comes black and it appears the windows cursor(loading one), but nothing happens, it never loads, I have to ALt+Tab+Supr(del) to end game. I know that Liberation 1.06 came out today morning. I tried with also with Liberation 1.05 and 1.03, same result. I reinstalled game and also verified game cache and nothing, the same problem always appear.
|
||||
How can I play again?
|
||||
|
||||
A -// ****************************************************
|
||||
|
||||
you have to go to MW2's fastfile directory:
|
||||
C:\Program Files (x86)\Steam\steamapps\common\call of duty modern warfare 2\zone\english\
|
||||
|
||||
then delete this file (make a backup if you want):
|
||||
mp_playlists_dlc2.ff
|
||||
|
||||
start up MW2 and it should now work
|
||||
|
||||
Q -// ****************************************************
|
||||
|
||||
How to load MW2 Fullscreen?
|
||||
|
||||
A -// ****************************************************
|
||||
|
||||
You can try (Alt + Enter) at the menu screen
|
||||
or
|
||||
seta r_fullscreen "1" (default value is 1) // Play in fullscreen/windowed mode (fullscreen is 1, windowed is 0)
|
||||
|
||||
Q -// ****************************************************
|
|
@ -0,0 +1,813 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
// No crosshair... force aim down sight
|
||||
setDvar("cg_drawcrosshair", 1);
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while(1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
|
||||
self iPrintlnBold("Admin: God Mode with 99,999 HP now available with EMP and Nuke Kill-Streaks.");
|
||||
}
|
||||
}
|
||||
|
||||
doGod()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// Take all weapons first
|
||||
self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
setDvar("g_speed", 220);
|
||||
setDvar("g_gravity", 180);
|
||||
setDvar("jump_height", 750);
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
/***************************/
|
||||
|
||||
if(self isHost()) {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
// Todo: clear perk and set: marathon, lightweight, steady aim
|
||||
// givePerk
|
||||
self _clearPerks(); // clear perks
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// Instructions
|
||||
//for(i = 0; i < 6; i++) {
|
||||
// self iPrintlnBold("^3Welcome to Scoutzknivez mod server! Press ^21^3 to unsling your weapon and play!"); wait 0.50;
|
||||
//}
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("AC-130 Standing By...");
|
||||
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "ac130", true );
|
||||
self thread doAmmo();
|
||||
|
||||
if(self.team == "allies") {
|
||||
self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
self giveWeapon( "famas_gl_mp", 0, false );self GiveMaxAmmo("famas_gl_mp");
|
||||
self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
else {
|
||||
self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
self giveWeapon( "sa80_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("sa80_heartbeat_silencer_mp");
|
||||
self giveWeapon( "famas_gl_mp", 0, false );self GiveMaxAmmo("famas_gl_mp");
|
||||
self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
}
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 9999999 );
|
||||
registerScoreInfo( "headshot", 9999999 );
|
||||
registerScoreInfo( "assist", 9999999 );
|
||||
registerScoreInfo( "suicide", 9999999 );
|
||||
registerScoreInfo( "teamkill", 9999999 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; //self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
/*
|
||||
|
||||
*/
|
||||
|
||||
init()
|
||||
{
|
||||
precacheShader("damage_feedback");
|
||||
precacheShader("damage_feedback_j");
|
||||
precacheShader("damage_feedback_endgame");
|
||||
precacheShader("scavenger_pickup");
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("connected", player);
|
||||
|
||||
player.hud_damagefeedback = newClientHudElem(player);
|
||||
player.hud_damagefeedback.horzAlign = "center";
|
||||
player.hud_damagefeedback.vertAlign = "middle";
|
||||
player.hud_damagefeedback.x = -12;
|
||||
player.hud_damagefeedback.y = -12;
|
||||
player.hud_damagefeedback.alpha = 0;
|
||||
player.hud_damagefeedback.archived = true;
|
||||
player.hud_damagefeedback setShader("damage_feedback", 24, 48);
|
||||
}
|
||||
}
|
||||
|
||||
updateDamageFeedback( typeHit )
|
||||
{
|
||||
if ( !isPlayer( self ) )
|
||||
return;
|
||||
|
||||
x = -12;
|
||||
y = -12;
|
||||
|
||||
if ( getDvarInt( "camera_thirdPerson" ) )
|
||||
yOffset = self GetThirdPersonCrosshairOffset() * 240;
|
||||
else
|
||||
yOffset = getdvarfloat( "cg_crosshairVerticalOffset" ) * 240;
|
||||
|
||||
if ( level.splitscreen )
|
||||
yOffset *= 0.5;
|
||||
|
||||
feedbackDurationOverride = 0;
|
||||
startAlpha = 1;
|
||||
|
||||
if ( typeHit == "hitBodyArmor" )
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback_j", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert"); // TODO: change sound?
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "hitEndGame" )
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback_endgame", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert");
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "stun" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "none" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "scavenger" && !level.hardcoreMode )
|
||||
{
|
||||
// x = -36;
|
||||
// y = 32;
|
||||
// self.hud_damagefeedback setShader("scavenger_pickup", 64, 32);
|
||||
// feedbackDurationOverride = 2.5;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert");
|
||||
return;
|
||||
}
|
||||
|
||||
//self.hud_damagefeedback.alpha = startAlpha;
|
||||
//if ( feedBackDurationOverride != 0 )
|
||||
// self.hud_damagefeedback fadeOverTime(feedbackDurationOverride);
|
||||
//else
|
||||
// self.hud_damagefeedback fadeOverTime(1);
|
||||
//
|
||||
//self.hud_damagefeedback.alpha = 0;
|
||||
|
||||
// only update hudelem positioning when necessary
|
||||
//if ( self.hud_damagefeedback.x != x )
|
||||
// self.hud_damagefeedback.x = x;
|
||||
//
|
||||
//y = y - int( yOffset );
|
||||
//if ( self.hud_damagefeedback.y != y )
|
||||
// self.hud_damagefeedback.y = y;
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
|
||||
/*
|
||||
Features:
|
||||
All hitmarkers are disabled.
|
||||
*/
|
||||
|
||||
init()
|
||||
{
|
||||
precacheShader("damage_feedback");
|
||||
precacheShader("damage_feedback_j");
|
||||
precacheShader("damage_feedback_endgame");
|
||||
precacheShader("scavenger_pickup");
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("connected", player);
|
||||
|
||||
player.hud_damagefeedback = newClientHudElem(player);
|
||||
player.hud_damagefeedback.horzAlign = "center";
|
||||
player.hud_damagefeedback.vertAlign = "middle";
|
||||
player.hud_damagefeedback.x = -12;
|
||||
player.hud_damagefeedback.y = -12;
|
||||
player.hud_damagefeedback.alpha = 0;
|
||||
player.hud_damagefeedback.archived = true;
|
||||
player.hud_damagefeedback setShader("damage_feedback", 24, 48);
|
||||
}
|
||||
}
|
||||
|
||||
updateDamageFeedback( typeHit )
|
||||
{
|
||||
if ( !isPlayer( self ) )
|
||||
return;
|
||||
|
||||
x = -12;
|
||||
y = -12;
|
||||
|
||||
if ( getDvarInt( "camera_thirdPerson" ) )
|
||||
yOffset = self GetThirdPersonCrosshairOffset() * 240;
|
||||
else
|
||||
yOffset = getdvarfloat( "cg_crosshairVerticalOffset" ) * 240;
|
||||
|
||||
if ( level.splitscreen )
|
||||
yOffset *= 0.5;
|
||||
|
||||
feedbackDurationOverride = 0;
|
||||
startAlpha = 1;
|
||||
|
||||
if ( typeHit == "hitBodyArmor" )
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback_j", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert"); // TODO: change sound?
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "hitEndGame" )
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback_endgame", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert");
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "stun" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "none" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if ( typeHit == "scavenger" && !level.hardcoreMode )
|
||||
{
|
||||
// x = -36;
|
||||
// y = 32;
|
||||
// self.hud_damagefeedback setShader("scavenger_pickup", 64, 32);
|
||||
// feedbackDurationOverride = 2.5;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// self.hud_damagefeedback setShader("damage_feedback", 24, 48);
|
||||
// self playlocalsound("MP_hit_alert");
|
||||
return;
|
||||
}
|
||||
|
||||
//self.hud_damagefeedback.alpha = startAlpha;
|
||||
//if ( feedBackDurationOverride != 0 )
|
||||
// self.hud_damagefeedback fadeOverTime(feedbackDurationOverride);
|
||||
//else
|
||||
// self.hud_damagefeedback fadeOverTime(1);
|
||||
//
|
||||
//self.hud_damagefeedback.alpha = 0;
|
||||
|
||||
// only update hudelem positioning when necessary
|
||||
//if ( self.hud_damagefeedback.x != x )
|
||||
// self.hud_damagefeedback.x = x;
|
||||
//
|
||||
//y = y - int( yOffset );
|
||||
//if ( self.hud_damagefeedback.y != y )
|
||||
// self.hud_damagefeedback.y = y;
|
||||
}
|
|
@ -0,0 +1,802 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Allies get Scar with Red Dot Sight and Silencer as a primary and M9 with FMJ and a tac knife as a secondary.
|
||||
Axis get a Tar-21 with a heartbeat sensor and a silencer for primary and gold desert eagle as a secondary.
|
||||
Class changing exploit fixed thanks to AgentGod!
|
||||
Perks set to: Bullet Damage, Bullet Penetration, Cold Blooded, Scavenger, Extended Mags, Bullet Accuracy, Ninja, Expose Enemy, Sleight Of Hand
|
||||
xpscale Unlocked.
|
||||
Alltalk enabled.
|
||||
Ping text enabled.
|
||||
Welcome messages on.
|
||||
Fall Damage disabled.
|
||||
Crosshairs disabled.
|
||||
Infinite Sprint on.
|
||||
FPS Cap Unlocked
|
||||
|
||||
Recommended:
|
||||
Hardcore Enabled
|
||||
Friendly Fire Enabled
|
||||
Killstreaks Disabled
|
||||
*/
|
||||
|
||||
isValidWeapon(weapon) {
|
||||
switch(weapon) {
|
||||
case "tavor_heartbeat_silencer_mp":
|
||||
case "scar_reflex_silencer_mp":
|
||||
case "deserteaglegold_mp":
|
||||
case "beretta_fmj_tactical_mp":
|
||||
case "none":
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
fixExploit() {
|
||||
self endon("disconnect");
|
||||
wait 15; // We check on spawn only
|
||||
if(!isValidWeapon(self getCurrentWeapon())) {
|
||||
self takeAllWeapons(); // bye bye fgt
|
||||
self giveWeapon("stinger_mp", 0, false);
|
||||
self giveMaxAmmo("stinger_mp");
|
||||
self switchToWeapon("stinger_mp");
|
||||
// All you get is a stinger for messing around ;)
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Don't use the exploit!");
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// Take all weapons first
|
||||
self takeAllWeapons();
|
||||
|
||||
// Take all perks next
|
||||
self _clearPerks();
|
||||
|
||||
//Cheat Fix
|
||||
setDvar("sv_cheats", 1);
|
||||
|
||||
//Double XP
|
||||
setDvar("scr_xpscale", 2);
|
||||
|
||||
//Ping
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
|
||||
//FPS Limit
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
|
||||
//All Talk
|
||||
self setClientDvar("cg_everyoneHearsEveryone", 1);
|
||||
|
||||
//Messages
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Elite Mod");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("v1.0");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Please report any bugs.");
|
||||
|
||||
//Tweaks
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
setDvar("player_sprintUnlimited", 1);
|
||||
setDvar("cg_drawcrosshair", 0);
|
||||
|
||||
//Perks
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_scavenger");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_quieter");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
//Cheat fix
|
||||
setDvar("sv_cheats", 0);
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
//exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread fixExploit();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
if(self.pers["team"] == "allies") {
|
||||
self giveWeapon( "scar_reflex_silencer_mp", 0, false );self GiveMaxAmmo("scar_reflex_silencer_mp");
|
||||
self giveWeapon( "beretta_fmj_tactical_mp", 0, false );self GiveMaxAmmo("beretta_fmj_tactical_mp");
|
||||
while(self getCurrentWeapon() != "scar_reflex_silencer_mp") {
|
||||
self switchToWeapon("scar_reflex_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
else {
|
||||
self giveWeapon( "tavor_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("tavor_heartbeat_silencer_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
while(self getCurrentWeapon() != "tavor_heartbeat_silencer_mp") {
|
||||
self switchToWeapon("tavor_heartbeat_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
self maps\mp\perks\_perks::givePerk( "frag_grenade_mp" );self setWeaponAmmoClip("frag_grenade_mp", 1);
|
||||
self SetOffhandSecondaryClass( "concussion" );
|
||||
self giveWeapon( "concussion_grenade_mp" );self setWeaponAmmoClip("concussion_grenade_mp", 2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
//exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,857 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
A awesome Gungame mod
|
||||
You spawn with a throwing knife - get two kills and you are given a pistol etc all the way up to sniper rifles
|
||||
It includes the Golden Desert Eagle and nightvision
|
||||
It includes some modded killstreaks
|
||||
But most are disabled to keep things fair.
|
||||
*/
|
||||
|
||||
initGuns()
|
||||
{
|
||||
self.inverse = false; //Inverted gungame?
|
||||
self.upgscore = 100; //Score necessary for upgrade. Leave at 100 for 2 kill upgrade. Do 50 for 1 kill, 150 for 3 kill.
|
||||
self.finalkills = 5; //Kills to win after getting final weapon
|
||||
self.gunList = [];
|
||||
// Gun Name, Laser Sight, Akimbo
|
||||
self.gunList[0] = createGun("throwingknife_mp", 9, false, false);
|
||||
self.gunList[1] = createGun("usp_fmj_mp", 9, false, false);
|
||||
self.gunList[2] = createGun("beretta_fmj_mp", 9, false, false);
|
||||
self.gunList[3] = createGun("coltanaconda_fmj_mp", 9, false, false);
|
||||
self.gunList[4] = createGun("deserteaglegold_mp", 9, false, false);
|
||||
self.gunList[5] = createGun("pp2000_mp", 9, true, false);
|
||||
self.gunList[6] = createGun("tmp_mp", 9, true, false);
|
||||
self.gunList[7] = createGun("beretta393_akimbo_mp", 9, true, true);
|
||||
self.gunList[8] = createGun("glock_mp", 9, true, false);
|
||||
self.gunList[9] = createGun("ranger_akimbo_mp", 9, true, true);
|
||||
self.gunList[10] = createGun("model1887_akimbo_mp", 9, true, true);
|
||||
self.gunList[11] = createGun("m1014_grip_reflex_mp", 9, true, false);
|
||||
self.gunList[12] = createGun("striker_grip_reflex_mp", 9, true, false);
|
||||
self.gunList[13] = createGun("aa12_eotech_grip_mp", 9, true, false);
|
||||
self.gunList[14] = createGun("spas12_grip_mp", 9, true, false);
|
||||
self.gunList[15] = createGun("uzi_reflex_rof_mp", 9, true, false);
|
||||
self.gunList[16] = createGun("mp5k_reflex_rof_mp", 9, true, false);
|
||||
self.gunList[17] = createGun("ump45_reflex_rof_mp", 9, true, false);
|
||||
self.gunList[18] = createGun("p90_eotech_rof_mp", 9, true, false);
|
||||
self.gunList[19] = createGun("fal_acog_mp", 9, true, false);
|
||||
self.gunList[20] = createGun("scar_reflex_mp", 9, true, false);
|
||||
self.gunList[21] = createGun("m16_reflex_mp", 9, true, false);
|
||||
self.gunList[22] = createGun("aug_grip_mp", 9, true, false);
|
||||
self.gunList[23] = createGun("masada_reflex_mp", 9, true, false);
|
||||
self.gunList[24] = createGun("rpd_grip_mp", 9, true, false);
|
||||
self.gunList[25] = createGun("mg4_grip_mp", 9, true, false);
|
||||
self.gunList[26] = createGun("m240_grip_mp", 9, true, false);
|
||||
self.gunList[27] = createGun("wa2000_fmj_mp", 9, false, false);
|
||||
self.gunList[28] = createGun("m21_fmj_mp", 9, false, false);
|
||||
self.gunList[29] = createGun("barrett_fmj_mp", 9, false, false);
|
||||
self.gunList[30] = createGun("cheytac_fmj_mp", 9, false, false);
|
||||
self.gunList[31] = createGun("m79_mp", 9, false, false);
|
||||
self.gunList[32] = createGun("at4_mp", 9, true, false);
|
||||
self.gunList[33] = createGun("rpg_mp", 9, false, false);
|
||||
self.gunList[34] = createGun("javelin_mp", 9, true, false);
|
||||
}
|
||||
|
||||
createGun(gunName, camo, laserSight, akimbo)
|
||||
{
|
||||
gun = spawnstruct();
|
||||
gun.name = gunName;
|
||||
gun.camo = camo;
|
||||
gun.laser = laserSight;
|
||||
gun.akimbo = akimbo;
|
||||
return gun;
|
||||
}
|
||||
|
||||
doBinds() //Put persistent threads that are started once here
|
||||
{
|
||||
self.firstRun = true;
|
||||
self thread initGuns();
|
||||
self.nv = false;
|
||||
self thread killCrosshairs();
|
||||
self thread doScore();
|
||||
self thread doGun();
|
||||
setDvar("scr_dm_scorelimit", ((self.gunList.size - 1) * self.upgscore) + (self.finalkills * 50));
|
||||
setDvar("scr_dm_timelimit", 0);
|
||||
setDvar("ui_gametype", "ffa");
|
||||
setDvar("scr_game_killstreakdelay", 99999999);
|
||||
}
|
||||
|
||||
doDvars() //Put threads that are called with every respawn
|
||||
{
|
||||
setDvar("g_speed", 220);
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
setDvar("bg_fallDamageMinHeight", 99999);
|
||||
self setClientDvar("player_meleerange", 0);
|
||||
self _clearPerks();
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_quieter");
|
||||
if(self.nv) self VisionSetNakedForPlayer("default_night_mp", 1);
|
||||
else self VisionSetNakedForPlayer(getDvar("mapname"), 2);
|
||||
self thread doNV();
|
||||
if(self.firstRun){
|
||||
if(self.inverted){
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Inverse Gun Game");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Kill Enemies to Downgrade Your Gun");
|
||||
}else{
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Gun Game");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Kill Enemies to Upgrade Your Gun");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Modded by The Supreme");
|
||||
}
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Press [{+actionslot 1}] to Toggle Night Vision");
|
||||
self.firstRun = false;
|
||||
}
|
||||
}
|
||||
|
||||
doGun()
|
||||
{
|
||||
self endon("disconnect");
|
||||
if(self.inverse) self.curgun = self.gunList.size - 1;
|
||||
else self.curgun = 0;
|
||||
curscore = 0;
|
||||
done = false;
|
||||
while(true){
|
||||
if(self.inverse && self.curgun <= 0) done = true;
|
||||
if(!self.inverse && self.curgun >= (self.gunList.size - 1)) done = true;
|
||||
if(!done){
|
||||
if(self.inverse && (self.score - curscore >= self.upgscore)){
|
||||
self.curgun--;
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Downgraded!");
|
||||
curscore = self.score;
|
||||
}else if((self.score - curscore >= self.upgscore)){
|
||||
self.curgun++;
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Upgraded!");
|
||||
curscore = self.score;
|
||||
}
|
||||
}
|
||||
while(self getCurrentWeapon() != self.gunList[self.curgun].name){
|
||||
if(self.gunList[self.curgun].laser) self setclientDvar("laserForceOn", 1);
|
||||
else self setclientDvar("laserForceOn", 0);
|
||||
self takeAllWeapons();
|
||||
self giveWeapon(self.gunList[self.curgun].name, self.gunList[self.curgun].camo, self.gunList[self.curgun].akimbo);
|
||||
self switchToWeapon(self.gunList[self.curgun].name);
|
||||
wait .2;
|
||||
}
|
||||
self giveMaxAmmo(self.gunList[self.curgun].name);
|
||||
wait .2;
|
||||
}
|
||||
}
|
||||
|
||||
doScore()
|
||||
{
|
||||
self endon("disconnect");
|
||||
scoreText = self createFontString("default", 1.5);
|
||||
scoreText setPoint("TOPRIGHT", "TOPRIGHT", -5, 0);
|
||||
while(true)
|
||||
{
|
||||
scoreText setText("^3 Level " + self.curgun);
|
||||
wait .2;
|
||||
}
|
||||
}
|
||||
|
||||
doNV() //Night Vision
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
self notifyOnPlayerCommand("n", "+actionslot 1");
|
||||
while(true){
|
||||
self waittill("n");
|
||||
self playSound("claymore_activated");
|
||||
if(!self.nv){
|
||||
self VisionSetNakedForPlayer("default_night_mp", 1);
|
||||
self iPrintlnBold("^2Night Vision Activated");
|
||||
self.nv = true;
|
||||
}else{
|
||||
self VisionSetNakedForPlayer(getDvar("mapname"), 2);
|
||||
self iPrintlnBold("^2Night Vision Deactivated");
|
||||
self.nv = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
killCrosshairs() //Get rid of those fucking useless hax
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
while(true){
|
||||
setDvar("cg_drawcrosshair", 0);
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
self setClientDvar("cg_drawFPS", 1);
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread doBinds();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
//exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,959 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Set admins with ease.
|
||||
Admins spawn with a AK47 Holo Silenced and a USP Silenced.
|
||||
Normal people spawn with a M16 Holo Silenced and a MP5K Acog.
|
||||
All spawn with a grenade and 2 concussions.
|
||||
XPScale Unlocked.
|
||||
Infinite Run.
|
||||
Crosshairs Off.
|
||||
Damage Indicator Cross Off.
|
||||
Class changing exploit fixed thanks to AgentGod!
|
||||
Admins get lots of perks, No recoil, double length kill streaks and reduced spread.
|
||||
Welcome Message with sound.
|
||||
Ping Text Enabled.
|
||||
Admins can press N for a wallhack toggle on off.
|
||||
All can press 5 for night vision.
|
||||
All can press 3 for lasers.
|
||||
Instructions on hotkeys.
|
||||
Altered scoreboard.Hardcore mode.
|
||||
Everyone has scavenger.
|
||||
Admins have their ammo reserves refreshed every 5 seconds.
|
||||
Normal people have their ammo reserves refreshed every 20 seconds.
|
||||
Everyone unlocks 10th Spinning Emblem.
|
||||
|
||||
Optional:
|
||||
Disable Killstreaks
|
||||
*/
|
||||
|
||||
doWallhack() {
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
self notifyOnPlayerCommand( "n", "+actionslot 1" );
|
||||
for(;;) {
|
||||
self waittill ("n");
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
self iPrintlnBold("Wallhack Activated!");
|
||||
self playSound("claymore_activated");
|
||||
|
||||
self waittill ("n");
|
||||
self ThermalVisionFOFOverlayOff();
|
||||
self iPrintlnBold("Wallhack De-Activated!");
|
||||
self playSound("claymore_activated");
|
||||
}
|
||||
}
|
||||
|
||||
doLasers() {
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
self notifyOnPlayerCommand( "3", "+actionslot 3" );
|
||||
for(;;) {
|
||||
self waittill ("3");
|
||||
self setclientDvar("laserForceOn", 1);
|
||||
self iPrintlnBold("Lasers Activated!");
|
||||
self playSound("claymore_activated");
|
||||
|
||||
self waittill ("3");
|
||||
self setclientDvar("laserForceOn", 0);
|
||||
self iPrintlnBold("Lasers De-Activated!");
|
||||
self playSound("claymore_activated");
|
||||
}
|
||||
}
|
||||
|
||||
doNightvision() {
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
for(;;) {
|
||||
self waittill ("5");
|
||||
self VisionSetNakedForPlayer("default_night_mp", 0);
|
||||
self playSound("claymore_activated");
|
||||
self iPrintlnBold("Night Vision Activated!");
|
||||
|
||||
self waittill ("5");
|
||||
self VisionSetNakedForPlayer(getdvar("mapname"), 0);
|
||||
self playSound("claymore_activated");
|
||||
self iPrintlnBold("Night Vision De-Activated!");
|
||||
}
|
||||
}
|
||||
|
||||
killCrosshairs() {
|
||||
self endon("disconnect");
|
||||
|
||||
while(1) {
|
||||
setDvar("cg_drawcrosshair", 0);
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doHud() {
|
||||
setDvar("cg_cursorHints", 0);
|
||||
setDvar("cg_descriptiveText", 0);
|
||||
setDvar("cg_drawCrosshairNames", 0);
|
||||
setDvar("cg_drawDamageDirection", 0);
|
||||
setDvar("g_hardcore", 1);
|
||||
setDvar("cg_scoreboardItemHeight", 10);
|
||||
setDvar("cg_scoreboardPingText", 1);
|
||||
setDvar("perk_scavengerMode", 1);
|
||||
}
|
||||
|
||||
doCheckVIP() {
|
||||
if ( self.name == "." || self.name == "ADMIN2" || self.name == "ADMIN3" || self.name == "ADMIN4" || self.name == "ADMIN5" || self.name == "ADMIN6" ) {
|
||||
self thread doVip();
|
||||
self thread doVipperks();
|
||||
self thread doWallhack();
|
||||
self thread doNightvision();
|
||||
self thread doLasers();
|
||||
self thread doVweapons();
|
||||
self iPrintlnBold("Press N for wallhack and 5 for night vision and 3 for lasers!");
|
||||
} else {
|
||||
self thread doClearperks();
|
||||
self thread doNightvision();
|
||||
self thread doLasers();
|
||||
self thread doNweapons();
|
||||
self thread doAmmon();
|
||||
self iPrintlnBold("Press 5 for night vision and 3 for lasers!");
|
||||
}
|
||||
|
||||
setDvar("sv_cheats", 1);
|
||||
self thread killCrosshairs();
|
||||
self thread doHud();
|
||||
self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
|
||||
}
|
||||
|
||||
doVip() {
|
||||
self.killStreakScaler = 2;
|
||||
self player_recoilScaleOn(0);
|
||||
self setclientDvar("perk_weapSpreadMultiplier" , 0.001);
|
||||
self setclientDvar("cg_drawShellshock", 0);
|
||||
self thread doAmmo();
|
||||
}
|
||||
|
||||
doSplash() {
|
||||
self endon("disconnect");
|
||||
|
||||
wait 15;
|
||||
notifyData = spawnstruct();
|
||||
notifyData.iconName = "rank_prestige7";
|
||||
notifyData.titleText = "Ignition Mod";
|
||||
notifyData.notifyText = "By RigorousSphinx";
|
||||
notifyData.notifyText2 = "Have Fun!";
|
||||
notifyData.glowColor = (0.3, 0.6, 0.3);
|
||||
notifyData.sound = "veh_ac130_sonic_boom";
|
||||
self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
|
||||
wait 0.5;
|
||||
}
|
||||
|
||||
isValidWeapon(weapon) {
|
||||
switch(weapon) {
|
||||
case "m16_eotech_silencer_mp":
|
||||
case "mp5k_eotech_silencer_mp":
|
||||
case "ak47_eotech_silencer_mp":
|
||||
case "usp_silencer_xmags_mp":
|
||||
case "none":
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
fixExploit() {
|
||||
self endon("disconnect");
|
||||
wait 15; // We check on spawn only
|
||||
|
||||
if (!isValidWeapon(self getCurrentWeapon())) {
|
||||
self takeAllWeapons();
|
||||
self giveWeapon("stinger_mp", 0, false);
|
||||
self giveMaxAmmo("stinger_mp");
|
||||
self switchToWeapon("stinger_mp");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Don't use the exploit!");
|
||||
}
|
||||
}
|
||||
|
||||
doNweapons() {
|
||||
self takeAllWeapons();
|
||||
self giveWeapon("m16_eotech_silencer_mp", 1, false);self GiveMaxAmmo("m16_eotech_silencer_mp");
|
||||
self giveWeapon("mp5k_eotech_silencer_mp", 1, false);self GiveMaxAmmo("mp5k_eotech_silencer_mp");
|
||||
|
||||
while(self getCurrentWeapon() != "m16_eotech_silencer_mp") {
|
||||
self switchToWeapon("m16_eotech_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("frag_grenade_mp");self setWeaponAmmoClip("frag_grenade_mp", 1);
|
||||
self SetOffhandSecondaryClass( "concussion");
|
||||
self giveWeapon("concussion_grenade_mp");self setWeaponAmmoClip("concussion_grenade_mp", 2);
|
||||
|
||||
}
|
||||
|
||||
doVweapons() {
|
||||
self takeAllWeapons();
|
||||
self giveWeapon("ak47_eotech_silencer_mp", 9, false);self GiveMaxAmmo("ak47_eotech_silencer_mp");
|
||||
self giveWeapon("usp_silencer_xmags_mp", 9, false);self GiveMaxAmmo("usp_silencer_xmags_mp");
|
||||
|
||||
while(self getCurrentWeapon() != "ak47_eotech_silencer_mp") {
|
||||
self switchToWeapon("ak47_eotech_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
self maps\mp\perks\_perks::givePerk( "frag_grenade_mp" );self setWeaponAmmoClip("frag_grenade_mp", 3);
|
||||
self SetOffhandSecondaryClass( "concussion" );
|
||||
self giveWeapon( "concussion_grenade_mp" );self setWeaponAmmoClip("concussion_grenade_mp", 3);
|
||||
|
||||
}
|
||||
|
||||
doAmmo() {
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
while (1) {
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
|
||||
if (currentWeapon != "none") {
|
||||
self GiveMaxAmmo(currentWeapon);
|
||||
}
|
||||
|
||||
wait 5;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmon()
|
||||
{
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
while (1) {
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
|
||||
if (currentWeapon != "none") {
|
||||
self GiveMaxAmmo(currentWeapon);
|
||||
}
|
||||
|
||||
wait 20;
|
||||
}
|
||||
}
|
||||
|
||||
doVipperks() {
|
||||
self _clearPerks();
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_jumpdive");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
|
||||
}
|
||||
|
||||
doClearperks() {
|
||||
self _clearPerks();
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_specialgrenade");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fraggrenade");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
}
|
||||
|
||||
init() {
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
// exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
player thread doSplash();
|
||||
|
||||
player thread fixExploit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doCheckvip();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
// if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
// exitLevel(false);
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet("experience", xp);
|
||||
}
|
|
@ -0,0 +1,722 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
completeAllChallenges()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
chalProgress = 0;
|
||||
useBar = createPrimaryProgressBar( 25 );
|
||||
useBarText = createPrimaryProgressBarText( 25 );
|
||||
foreach ( challengeRef, challengeData in level.challengeInfo )
|
||||
{
|
||||
finalTarget = 0;
|
||||
finalTier = 0;
|
||||
for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ )
|
||||
{
|
||||
finalTarget = challengeData["targetval"][tierId];
|
||||
finalTier = tierId + 1;
|
||||
}
|
||||
if ( self isItemUnlocked( challengeRef ) )
|
||||
{
|
||||
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
|
||||
self setPlayerData( "challengeState", challengeRef, finalTier );
|
||||
}
|
||||
|
||||
chalProgress++;
|
||||
chalPercent = ceil( ((chalProgress/480)*100) );
|
||||
useBarText setText( chalPercent + " percent done" );
|
||||
useBar updateBar( chalPercent / 100 );
|
||||
|
||||
wait ( 0.04 );
|
||||
}
|
||||
useBar destroyElem();
|
||||
useBarText destroyElem();
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
// exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 200 );
|
||||
registerScoreInfo( "headshot", 300 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
self setPlayerData( "experience", 2516000 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread completeAllChallenges();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
// player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self setPlayerData( "experience", 2516000 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
// exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,792 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Both teams get RPD with Extended Mags and Grip.
|
||||
Class changing exploit fixed thanks to AgentGod!
|
||||
Perks set to: Sleight of hand, Bullet Damage, Bullet Penetration, Bullet Accuracy, Extended Melee, Fast Sprint Recovery
|
||||
xpscale Unlocked.
|
||||
Alltalk enabled.
|
||||
Ping text enabled.
|
||||
Welcome messages on.
|
||||
Fall Damage disabled.
|
||||
Crosshairs disabled.
|
||||
Infinite Sprint on.
|
||||
Speed increased
|
||||
FPS Cap Unlocked
|
||||
|
||||
Recommended:
|
||||
Killstreaks Disabled
|
||||
*/
|
||||
|
||||
isValidWeapon(weapon) {
|
||||
switch(weapon) {
|
||||
case "rpd_grip_xmags_mp":
|
||||
case "none":
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
fixExploit() {
|
||||
self endon("disconnect");
|
||||
wait 15; // We check on spawn only
|
||||
if(!isValidWeapon(self getCurrentWeapon())) {
|
||||
self takeAllWeapons(); // bye bye fgt
|
||||
self giveWeapon("stinger_mp", 0, false);
|
||||
self giveMaxAmmo("stinger_mp");
|
||||
self switchToWeapon("stinger_mp");
|
||||
// All you get is a stinger for messing around ;)
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Don't use the exploit!");
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// Take all weapons first
|
||||
self takeAllWeapons();
|
||||
|
||||
// Take all perks next
|
||||
self _clearPerks();
|
||||
|
||||
//Cheat Fix
|
||||
setDvar("sv_cheats", 1);
|
||||
|
||||
//Double XP
|
||||
setDvar("scr_xpscale", 2);
|
||||
|
||||
//Ping
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
|
||||
//FPS Cap
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
|
||||
//All Talk
|
||||
self setClientDvar("cg_everyoneHearsEveryone", 1);
|
||||
|
||||
//Messages
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("RPD Only");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Show them who's boss!");
|
||||
|
||||
//Tweaks
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
setDvar("player_sprintUnlimited", 1);
|
||||
setDvar("cg_drawcrosshair", 0);
|
||||
setDvar("g_speed", 220);
|
||||
|
||||
//Perks
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
|
||||
//Cheat fix
|
||||
setDvar("sv_cheats", 0);
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
//exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread fixExploit();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
if(self.pers["team"] == "allies") {
|
||||
self giveWeapon( "rpd_grip_xmags_mp", 0, false );self GiveMaxAmmo("rpd_grip_xmags_mp");
|
||||
while(self getCurrentWeapon() != "rpd_grip_xmags_mp") {
|
||||
self switchToWeapon("rpd_grip_xmags_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
else {
|
||||
self giveWeapon( "rpd_grip_xmags_mp", 0, false );self GiveMaxAmmo("rpd_grip_xmags_mp");
|
||||
while(self getCurrentWeapon() != "rpd_grip_xmags_mp") {
|
||||
self switchToWeapon("rpd_grip_xmags_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
self maps\mp\perks\_perks::givePerk( "frag_grenade_mp" );self setWeaponAmmoClip("frag_grenade_mp", 1);
|
||||
self SetOffhandSecondaryClass( "concussion" );
|
||||
self giveWeapon( "concussion_grenade_mp" );self setWeaponAmmoClip("concussion_grenade_mp", 2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
//exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
Modern Warfare 2 Unleashed - The Dev Console Unlocker for PC v1.1
|
||||
by AgentGOD
|
||||
----------------------------
|
||||
|
||||
Home Page: http://www.ultimate-filez.com
|
||||
Donation : http://www.ultimate-filez.com/?page=donate
|
||||
|
||||
Screenshots of Proof-of-Concept:
|
||||
---------------------------------
|
||||
http://img195.imageshack.us/img195/8141/mw2console.jpg
|
||||
http://img197.imageshack.us/img197/9381/mw2console2.jpg
|
||||
http://img5.imageshack.us/img5/5673/mw2console4.jpg
|
||||
|
||||
Tested on:
|
||||
-----------
|
||||
Call of Duty: Modern Warfare 2 Multiplayer v1.0
|
||||
Microsoft(R) Windows Vista Ultimate x64 SP2
|
||||
|
||||
|
||||
Description:
|
||||
------------
|
||||
Tired of Infinity Ward locking down the PC version of MW2? No problem!
|
||||
This program will allow you to bring back the globally loved
|
||||
developer console in the game! Plus, it will unlock important cvars like
|
||||
cg_fov to change the field-of-view at the same time!
|
||||
|
||||
I hope with the release of this program, Infinity Ward will un-neuter
|
||||
Modern Warfare 2 officially.
|
||||
|
||||
NOTE: By using this program, you agree that any consequences of usage
|
||||
shall not be imposed on the programmer (AgentGOD). Use at your
|
||||
own will and risk! I, the programmer, will NOT be held responsible
|
||||
in the event that you are banned by VAC.
|
||||
|
||||
With that in mind, the program should NOT trigger a VAC-ban, but I cannot
|
||||
make any guarantees.
|
||||
|
||||
Usage:
|
||||
------
|
||||
Run LoaderX.exe.
|
||||
Click Auto-Inject.
|
||||
Launch Call of Duty: Modern Warfare 2 Single/Multiplayer.
|
||||
Enjoy the tilde (~) key in its full glory.
|
||||
------
|
||||
|
||||
Copyright notices:
|
||||
Call of Duty(tm) and Modern Warfare(tm) are trademarks of Infinity Ward, and
|
||||
I am not in any way affiliated with Infinity Ward.
|
||||
|
||||
Copyright © 2009 Ultimate Filez
|
|
@ -0,0 +1,182 @@
|
|||
Modern Warfare 2 Liberation v1.06 for patch v1.2.208 (formerly VAC Chaos)
|
||||
by AgentGOD
|
||||
----------------------------
|
||||
|
||||
Home Page: http://www.ultimate-filez.com
|
||||
Donation : http://www.ultimate-filez.com/?page=donate
|
||||
|
||||
Key features:
|
||||
- Hosting Tool (customize ranked games with custom maps and rules)
|
||||
- Dedicated servers (with lobby id)
|
||||
- Mod loader (lets you host and play player-created game mods)
|
||||
Playing mods has never been simpler! Simply place the mod folder into the "Mods" folder,
|
||||
select the mod in the program, host, and you're good to go!
|
||||
- Developer console (lets you customize various settings as it was possible in every previous PC FPS game)
|
||||
- Script execution allowed
|
||||
- VAC bypass/protection (prevents you from being erroneously banned for doing righteous things)
|
||||
|
||||
Detailed description:
|
||||
- Gives the power to host servers back to the players who made Call of Duty possible (PC users)
|
||||
- Brings modding ability to Modern Warfare 2, integrated with the former 'VAC Chaos' software
|
||||
- Allows you to load custom mods for Modern Warfare 2
|
||||
- Loads from raw .gsc script files instead of having to create a new .ff file
|
||||
- Allows you to fully disable VAC (Valve Anti-Cheat) in Modern Warfare 2.
|
||||
- Unlocks hidden window-based developer console in a non-intrusive way.
|
||||
- Unlocks all dvars for changing and/or querying.
|
||||
- 4096-bit encryption provides full protection.
|
||||
- User-friendly and intuitive interface.
|
||||
- Automatically detects VAC presence (and takes action if needed).
|
||||
- Allows you to execute custom script (.cfg) files from disk.
|
||||
- Brings back script execution on game start (autoexec.cfg).
|
||||
- ShieldLoader loads all your favorite 3rd party DLL(s) with one click of a button
|
||||
- CEG protection remover further protects you from VAC
|
||||
- VAC-ban bypass allows you to put your VAC-banned Modern Warfare 2 accounts to use
|
||||
- New feature lets you play the game without the latest content patch (akimbo 1887s are OP'd again,
|
||||
care package knifing is back!, etc)
|
||||
[Note: Afghan, Rust, and Derail may have problems working if you enable this feature.
|
||||
However, you can extract the _utility.gsc file from the latest patch_mp.ff
|
||||
with a tool like ffViewer and create a simple mod to fix this issue with ModLoader]
|
||||
- Unlocks the default 91 fps cap automatically
|
||||
- Always shows ping numbers of players
|
||||
- Allows enforcing 80 degree FOV for yourself
|
||||
- Name spoofer to protect you from psychological harm
|
||||
- Fully dedicated mode (only developer console will show up when you host) *donor only
|
||||
- Completely disable host migration (prevent you from losing host) *donor only
|
||||
- Re-enables commonly used Windows shortcut keys (e.g. Alt+TAB) usually blocked by the game
|
||||
- Unlocks key bind ability
|
||||
- Allows retaining game settings from round-to-round (e.g. no more resetting score/time limit)
|
||||
[may break script execution ability]
|
||||
- Dedicated server support: use the lobby id as you would with an IP address....
|
||||
use it to let users join your server with a steam://joinlobby/10190/LOBBY_ID link or
|
||||
if the user is using Modern Warfare 2 Liberation, he/she could use 'connect_lobby LOBBY_ID' in the developer console
|
||||
click the [?] button under the dedicated server section in Modern Warfare 2 Liberation for more details
|
||||
[Keep your server going in various ways: let the game end and begin as normal to have random teams and maps, or
|
||||
create a mod to restrict the game to work on a certain map rotation as some people have already done for ModLoader]
|
||||
|
||||
* NOTE: this is the first and critical step towards dedicated servers. The only thing that's missing is a centralized
|
||||
master server to maintain a list of all the running servers.
|
||||
|
||||
Mods included:
|
||||
- ScoutzKnivez mod - a mod that makes gameplay similar to the old classic Counter-Strike map Scoutzknivez (very basic mod)
|
||||
- Realism Mod - AgentGOD's attempt to get Call of Duty as realistic as possible (see Readme-RealismMod.txt for details) *
|
||||
- TruHardcore Mod - play the game the way it was meant to be played (see Readme-TruHardcore.txt for details) *
|
||||
- FixNoPatches - allows you to play certain maps while using the "Good Ol' Days" feature (e.g. Rust)
|
||||
|
||||
* These mods are encrypted. They are encrypted for a reason, which implies that the author does not intend the source
|
||||
code to be viewed by prying eyes. The method of encryption is proprietary and will not be released. Any program that is
|
||||
seen that seem to offer encryption/decryption of mods are frowned upon and disallowed, if they are not from this author.
|
||||
Any use of such programs are directly disrespecting the author of this program and may result in the complete termination
|
||||
of future public releases. This policy will be enforced with zero tolerance to the fullest possible extent.
|
||||
|
||||
Lobby hotkeys:
|
||||
F4 - Host a public ranked match with custom settings - Go to "Find Game", choose your favorite game type,
|
||||
and then hit the hotkey. Customize the settings however
|
||||
you'd like, and then hit F5 to start the game when ready.
|
||||
|
||||
Note: MAKE SURE that you hit hotkey BEFORE the game joins a lobby.
|
||||
Alt+F4 - Reset player stats to blank level 70 prestige 10 (you'll lose customized kits and may need re-unlocking attachments)
|
||||
[you'll hear a confirmation 'ding' sound once you press this key combo]
|
||||
F5 - Start the game (when using F4 to force-host)
|
||||
|
||||
In-game hotkeys:
|
||||
F1 - Toggle draw fps and current host
|
||||
Alt+F1 - Switch to another mod *
|
||||
F2 - Open developer console
|
||||
Alt+F2 - Restart server (for scr_ dvars and mod switching) *
|
||||
F3 - Team-kill exploit tool - Join a game, make sure the other team has at least one spot left,
|
||||
Press hotkey, click on the enemy team, choose class, kill the green guys.
|
||||
Because this exploit requires at least one spot, it is recommended to do it
|
||||
at the beginning of a game when people are still joining.
|
||||
|
||||
For "spec-nading", go into any game, go near teammate with claymore/grenade,
|
||||
place claymore/grenade near teammate, press hotkey, Spectator. Watch it blow them up.
|
||||
Press the hotkey again and "auto assign" to re-join your team.
|
||||
Alt+F3 - Toggle mod randomization - picks a random mod for the next game *
|
||||
F4 - Graphics performance tweaks for gaming on a low-powered system (e.g. work laptops)
|
||||
[600+% performance boost obtained from a laptop with integrated HD 3200!]
|
||||
[Boosted from 30 fps to 200 fps!]
|
||||
Alt+F4 - Random name spoofer - spoofs to random person's name every 30 seconds *donor and premium members only *
|
||||
F5 - Toggle infinite ammo *
|
||||
Alt+F5 - Toggle god mode *
|
||||
F6 - Toggle apparent team - a fix for 'yellow team bug' and 'proper' team switching (combine with F3) *
|
||||
Alt+F6 - Toggle intelligent middle finger spam
|
||||
F7 - Toggle rapid fire (for pistols, barrett, FAL, etc)
|
||||
Alt+F7 - Toggle rapid fire for akimbo weapons
|
||||
F8 - Toggle rapid fire with jitter for burst weapons (e.g. M16, FAMAS)
|
||||
F9 - Force end current game
|
||||
X - Toggle No-Clip
|
||||
|
||||
* starred features require being the host of the game
|
||||
|
||||
Custom console commands:
|
||||
infammo - Toggle infinite ammo
|
||||
nextmod - Select next mod in the list, map_restart to take effect
|
||||
randmod - Toggle mod randomization, map_restart to take effect
|
||||
kickcheat - Kick everyone* from the game with "Cheat detected."
|
||||
*Includes the host unless "Kill host migration" is enabled
|
||||
|
||||
Requirements:
|
||||
- An x86/x64 CPU
|
||||
- At least 512 MB of system memory. Recommended minimum is 1 GB.
|
||||
- A modern Windows-NT based operating system (XP and above). Both x86 and x64 are supported.
|
||||
- Microsoft(R) Visual C++ 2008 Runtime (x86), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
|
||||
- Microsoft(R) .NET Framework v2.0 (minimum), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5
|
||||
|
||||
How to use:
|
||||
- Launch Steam and login to your account with Modern Warfare 2 on it
|
||||
- Open MW2_Liberation.exe as administrator (*Windows XP users: just make sure you run under an administrator account)
|
||||
- Change the configurations however you would like
|
||||
- If you'd like to load a mod, simply select it under the "Mod loader" section
|
||||
Most mods from MW2_ModLoader are compatible with Modern Warfare 2 Liberation (with the exception of Realism Mod v1.01)
|
||||
- Click Load Game when you're ready to play
|
||||
- Make sure it says "Protection: Loaded", or else do not load any hacks/cheats
|
||||
(if it says "Protection: Not Loaded" and you ran the game with "Load Game" button, post on forum immediately)
|
||||
- Now load up your favorite hacks/cheats and enjoy consequenceless gaming! ;) *
|
||||
- You must host a game using the Host Tool to play without getting kicked for not having VAC loaded
|
||||
(unless you're lucky enough to join a game hosted by a fellow Modern Warfare 2 Liberation user)
|
||||
|
||||
Tip: If you are creating a new mod, refer to many guides created by the XBOX modding community; they're helpful.
|
||||
Use a program like ffViewer to extract the game's stock .gsc files from the .ff files, and go from there.
|
||||
The specific mod will go in a folder with the name of the mod, inside the "Mods" folder. You then
|
||||
simply follow the same directory structure as the .gsc files were in the .ff file. See the included 'scoutzknivez'
|
||||
mod for an example.
|
||||
|
||||
To have your custom script file execute on startup, you need to name the file as
|
||||
"autoexec.cfg" and the file must be placed inside the Modern Warfare 2 "main" or "players" folder.
|
||||
Obviously you'll need to have "Startup script" option checked in the program as well.
|
||||
|
||||
* Note: by using this program, you agree that I, the programmer, shall not be in any way responsible for
|
||||
anything that happens to your account! You use this and any other program you download from the
|
||||
internet at your own risk. With that said, if you exercise caution (e.g. make sure VAC is not loaded),
|
||||
you should be completely protected. Watch out for viruses when you look for third party hacks/cheats.
|
||||
|
||||
You will not reverse engineer and/or modify this program, or circumvent any necessary checks, such as
|
||||
for extra features for donating. Doing so is frowned upon and will not be tolerated.
|
||||
|
||||
If you're running Windows Vista or Windows 7, you'll need to run these third party programs as
|
||||
administrator as well, unless you have UAC disabled. If you are getting an error about a missing
|
||||
.tmp file, that might indicate that your anti-virus software decided to make the program disappear.
|
||||
|
||||
Do not exit Modern Warfare 2 Liberation during a game... just don't, unless you want expensive paperweight.
|
||||
|
||||
If you are paranoid about a ban, rename your third party hacks/cheats before using. This program will
|
||||
rename itself, so that won't be an issue.
|
||||
|
||||
With that said, good luck, and have fun guys ;) Please donate if you love this program!
|
||||
|
||||
Credits:
|
||||
--------
|
||||
AgentGOD - coding this program, duh :)
|
||||
TricksOfDeath - graphics design
|
||||
GameThreat.net - hosting us ;)
|
||||
You guys - for supporting me ;)
|
||||
BlackDove - inspiration, made MW2 proof-of-concept
|
||||
REVOLUTiON - CEG protection removal idea
|
||||
|
||||
Copyright © 2011 Ultimate-Filez
|
||||
|
||||
Modern Warfare(tm) 2 and its logos are copyrighted by Infinity Ward.
|
||||
Infinity Ward logo is copyrighted by Infinity Ward.
|
||||
Ultimate Filez is not in any way affiliated with Infinity Ward.
|
|
@ -0,0 +1,52 @@
|
|||
Modern Warfare 2 ModLoader v1.1
|
||||
by AgentGOD
|
||||
|
||||
Homepage: http://www.ultimate-filez.com
|
||||
Donation: http://www.ultimate-filez.com/?page=donate
|
||||
-----------------------------------------------------
|
||||
|
||||
Description:
|
||||
- Allows you to load custom mods for Modern Warfare 2
|
||||
- Loads from raw .gsc script files instead of having to create a new .ff file
|
||||
|
||||
Note: it is recommended to use a VAC disabler such as VAC Chaos in conjunction with this program.
|
||||
Again, by using this program, you have agreed not to blame the author of this program for any
|
||||
consequences that may arise from using this program.
|
||||
|
||||
Please support this project by donating!
|
||||
|
||||
Includes:
|
||||
- ScoutzKnivez mod - a mod that makes gameplay similar to the old classic Counter-Strike map Scoutzknivez
|
||||
- Realism mod - AgentGOD's attempt to get Call of Duty as realistic as possible (see Readme-RealismMod.txt for details)
|
||||
|
||||
Requirements:
|
||||
- An x86/x64 CPU
|
||||
- At least 512 MB of system memory. Recommended minimum is 1 GB.
|
||||
- A modern Windows-NT based operating system (XP and above). Both x86 and x64 are supported.
|
||||
- Microsoft(R) Visual C++ 2008 Runtime (x86), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
|
||||
- Microsoft(R) .NET Framework v2.0 (minimum), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5
|
||||
|
||||
How to use:
|
||||
-----------
|
||||
- Open "LoaderX.exe" as administrator (for Vista and Windows 7)
|
||||
- Click "Auto-Inject". Make sure it says "Searching for..."
|
||||
if it says "An error occured", log off and log back on Windows
|
||||
- Open MW2_Modder.ini and configure as necessary
|
||||
- Run Modern Warfare 2 (through VAC Chaos if you're using it)
|
||||
- Host a game (either private match, or public ranked match through VAC Chaos)
|
||||
- Enjoy your mod!
|
||||
|
||||
Tip: If you are creating a new mod, refer to many guides created by the XBOX modding community; they're helpful.
|
||||
Use a program like ffViewer to extract the game's stock .gsc files from the .ff files, and go from there.
|
||||
The "mod folder" goes in the same folder as MW2_Modder.dll, and the name is the name of your mod. You then
|
||||
simply follow the same directory structure as the .gsc files were in the .ff file. See the included 'scoutzknivez'
|
||||
mod for an example.
|
||||
|
||||
|
||||
Credits:
|
||||
--------
|
||||
AgentGOD - coding this program, duh :)
|
||||
|
||||
Copyright © 2010 Ultimate-Filez
|
|
@ -0,0 +1,89 @@
|
|||
VAC Chaos v2.04 for Modern Warfare 2 patch v1.1.195
|
||||
by AgentGOD
|
||||
----------------------------
|
||||
|
||||
Home Page: http://www.ultimate-filez.com
|
||||
Donation : http://www.ultimate-filez.com/?page=donate
|
||||
|
||||
Description:
|
||||
- Allows you to fully disable VAC (Valve Anti-Cheat) in Modern Warfare 2.
|
||||
- Unlocks hidden window-based developer console in a non-intrusive way.
|
||||
- Unlocks all dvars for changing and/or querying.
|
||||
- 4096-bit encryption provides full protection.
|
||||
- User-friendly and intuitive interface.
|
||||
- Automatically detects VAC presence (and takes action if needed).
|
||||
- Allows you to execute custom script (.cfg) files from disk.
|
||||
- Brings back script execution on game start (autoexec.cfg).
|
||||
- ShieldLoader loads all your favorite 3rd party DLL(s) with one click of a button
|
||||
- CEG protection remover further protects you from VAC
|
||||
- VAC-ban bypass allows you to put your VAC-banned Modern Warfare 2 accounts to use
|
||||
|
||||
In-game hotkeys:
|
||||
F1 - Toggle draw fps and current host
|
||||
F2 - Open developer console
|
||||
F3 - Team-kill exploit tool - Join a game, make sure the other team has at least one spot left,
|
||||
Press hotkey, click on the enemy team, choose class, kill the green guys.
|
||||
Because this exploit requires at least one spot, it is recommended to do it
|
||||
at the beginning of a game when people are still joining.
|
||||
|
||||
For "spec-nading", go into any game, go near teammate with claymore/grenade,
|
||||
place claymore/grenade near teammate, press hotkey, Spectator. Watch it blow them up.
|
||||
Press the hotkey again and "auto assign" to re-join your team.
|
||||
F4 - Host a public ranked match with custom settings - Go to "Find Game", choose your favorite game type,
|
||||
and then hit the hotkey. Customize the settings however
|
||||
you'd like, and then hit F5 to start the game when ready.
|
||||
|
||||
Note: MAKE SURE that you hit hotkey BEFORE the game joins a lobby.
|
||||
F5 - Start the game (when using F4 to force-host)
|
||||
|
||||
Requirements:
|
||||
- An x86/x64 CPU
|
||||
- At least 512 MB of system memory. Recommended minimum is 1 GB.
|
||||
- A modern Windows-NT based operating system (XP and above). Both x86 and x64 are supported.
|
||||
- Microsoft(R) Visual C++ 2008 Runtime (x86), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
|
||||
- Microsoft(R) .NET Framework v2.0 (minimum), can be found here:
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5
|
||||
|
||||
How to use:
|
||||
- Launch Steam and login to your account with Modern Warfare 2 on it
|
||||
- Open VAC_Chaos.exe as administrator (*Windows XP users: just make sure you run under an administrator account)
|
||||
- Change the configurations however you would like
|
||||
- Click Load Game when you're ready to play
|
||||
- Make sure it says "VAC status: Not Loaded", or else do not load any hacks/cheats
|
||||
(if it says "VAC status: Loaded" and you ran the game with "Load Game" button, post on forum immediately)
|
||||
- Now load up your favorite hacks/cheats and enjoy consequenceless gaming! ;) *
|
||||
- You must host a game using the Host Tool to play without getting kicked for not having VAC loaded
|
||||
(unless you're lucky enough to join a game hosted by a fellow VAC Chaos user)
|
||||
|
||||
To have your custom script file execute on startup (v1.02 minimum), you need to name the file as
|
||||
"autoexec.cfg" and the file must be placed inside the Modern Warfare 2 "main" or "players" folder.
|
||||
Obviously you'll need to have "Startup script" option checked in the program as well.
|
||||
|
||||
* Note: by using this program, you agree that I, the programmer, shall not be in any way responsible for
|
||||
anything that happens to your account! You use this and any other program you download from the
|
||||
internet at your own risk. With that said, if you exercise caution (e.g. make sure VAC is not loaded),
|
||||
you should be completely protected. Watch out for viruses when you look for third party hacks/cheats.
|
||||
|
||||
If you're running Windows Vista or Windows 7, you'll need to run these third party programs as
|
||||
administrator as well, unless you have UAC disabled. If you are getting an error about a missing
|
||||
.tmp file, that might indicate that your anti-virus software decided to make the program disappear.
|
||||
|
||||
Do not exit VAC Chaos during a game... just don't, unless you want expensive paperweight.
|
||||
|
||||
If you are paranoid about a ban, rename your third party hacks/cheats before using. This program will
|
||||
rename itself, so that won't be an issue.
|
||||
|
||||
With that said, good luck, and have fun guys ;) Please donate if you love this program!
|
||||
|
||||
Credits:
|
||||
--------
|
||||
AgentGOD - coding this program, duh :)
|
||||
TricksOfDeath - graphics design
|
||||
GameThreat.net - hosting us ;)
|
||||
You guys - for supporting me ;)
|
||||
BlackDove - inspiration
|
||||
SuprNovaAO - inspiration
|
||||
REVOLUTiON - CEG protection removal idea
|
||||
|
||||
Copyright © 2010 Ultimate-Filez
|
|
@ -0,0 +1,759 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Stupid bots running in circle.
|
||||
|
||||
Recommended:
|
||||
Spawn with AC130 and kill stupid bots.
|
||||
*/
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
exitLevel( false );
|
||||
|
||||
level.xpScale = min( level.xpScale, 4 );
|
||||
level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Welcome to ^4Retarded Enemies ^1server!");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Mod created by noLife.");
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
self thread watchShoot();
|
||||
self thread watchCrouch();
|
||||
self thread initTestClients(17);
|
||||
}
|
||||
}
|
||||
initTestClients(numberOfTestClients)
|
||||
{
|
||||
for(i = 0; i < numberOfTestClients; i++)
|
||||
{
|
||||
ent[i] = addtestclient();
|
||||
|
||||
if (!isdefined(ent[i]))
|
||||
{
|
||||
wait 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
ent[i].pers["isBot"] = true;
|
||||
ent[i] thread initIndividualBot();
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
initIndividualBot()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
while(!isdefined(self.pers["team"]))
|
||||
wait .05;
|
||||
self notify("menuresponse", game["menu_team"], "autoassign");
|
||||
wait 0.5;
|
||||
self notify("menuresponse", "changeclass", "class" + randomInt( 5 ));
|
||||
self waittill( "spawned_player" );
|
||||
}
|
||||
|
||||
watchShoot()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
while(self AttackButtonPressed())
|
||||
{
|
||||
setDvar( "testClients_doAttack", 1 );
|
||||
wait 0.1;
|
||||
}
|
||||
setDvar( "testClients_doAttack", 0 );
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
watchCrouch()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self notifyOnPlayerCommand( "bbutton", "+stance" );
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
if ( self GetStance() == "crouch" )
|
||||
setDvar( "testClients_doCrouch", 1 );
|
||||
else
|
||||
setDvar( "testClients_doCrouch", 0 );
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,709 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Bots + Spawn with AC130 + No Recoil + Unlimited Ammo
|
||||
*/
|
||||
|
||||
init() {
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt("scr_xpscale");
|
||||
|
||||
if (level.xpScale > 4 || level.xpScale < 0)
|
||||
exitLevel(false);
|
||||
|
||||
level.xpScale = min(level.xpScale, 4);
|
||||
level.xpScale = max(level.xpScale, 0);
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString(&"RANK_PLAYER_WAS_PROMOTED_N");
|
||||
precacheString(&"RANK_PLAYER_WAS_PROMOTED");
|
||||
precacheString(&"RANK_PROMOTED");
|
||||
precacheString(&"MP_PLUS");
|
||||
precacheString(&"RANK_ROMANI");
|
||||
precacheString(&"RANK_ROMANII");
|
||||
precacheString(&"RANK_ROMANIII");
|
||||
|
||||
if (level.teamBased) {
|
||||
registerScoreInfo("kill", 100);
|
||||
registerScoreInfo("headshot", 200);
|
||||
registerScoreInfo("assist", 80);
|
||||
registerScoreInfo("suicide", 0);
|
||||
registerScoreInfo("teamkill", 0);
|
||||
} else {
|
||||
registerScoreInfo("kill", 50);
|
||||
registerScoreInfo("headshot", 50);
|
||||
registerScoreInfo("assist", 0);
|
||||
registerScoreInfo("suicide", 0);
|
||||
registerScoreInfo("teamkill", 0);
|
||||
}
|
||||
|
||||
registerScoreInfo("win", 1);
|
||||
registerScoreInfo("loss", 0.5);
|
||||
registerScoreInfo("tie", 0.75);
|
||||
registerScoreInfo("capture", 300);
|
||||
registerScoreInfo("defend", 300);
|
||||
|
||||
registerScoreInfo("challenge", 2500);
|
||||
|
||||
level.maxRank = int(tableLookup("mp/rankTable.csv", 0, "maxrank", 1));
|
||||
level.maxPrestige = int(tableLookup("mp/rankIconTable.csv", 0, "maxprestige", 1));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for (pId = 0; pId <= level.maxPrestige; pId++) {
|
||||
for (rId = 0; rId <= level.maxRank; rId++)
|
||||
precacheShader(tableLookup("mp/rankIconTable.csv", 0, rId, (pId + 1)));
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1);
|
||||
assert(isDefined(rankName) && rankName != "");
|
||||
|
||||
while (isDefined(rankName) && rankName != "") {
|
||||
level.rankTable[rankId][1] = tableLookup("mp/ranktable.csv", 0, rankId, 1);
|
||||
level.rankTable[rankId][2] = tableLookup("mp/ranktable.csv", 0, rankId, 2);
|
||||
level.rankTable[rankId][3] = tableLookup("mp/ranktable.csv", 0, rankId, 3);
|
||||
level.rankTable[rankId][7] = tableLookup("mp/ranktable.csv", 0, rankId, 7);
|
||||
|
||||
precacheString(tableLookupIString("mp/ranktable.csv", 0, rankId, 16));
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup("mp/ranktable.csv", 0, rankId, 1);
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter() {
|
||||
level endon("game_ended");
|
||||
|
||||
while (!isDefined(level.players) || !level.players.size)
|
||||
wait (0.05);
|
||||
|
||||
if (!matchMakingGame() ) {
|
||||
if ((getDvar("mapname") == "mp_rust" && randomInt(1000) == 999))
|
||||
level.patientZeroName = level.players[0].name;
|
||||
} else {
|
||||
if (getDvar("scr_patientZero") != "")
|
||||
level.patientZeroName = getDvar("scr_patientZero");
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent(type) {
|
||||
if (isDefined(level.scoreInfo[type]))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo(type, value) {
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue(type) {
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if (getDvar(overrideDvar) != "")
|
||||
return getDvarInt(overrideDvar);
|
||||
else
|
||||
return (level.scoreInfo[type]["value"]);
|
||||
}
|
||||
|
||||
getScoreInfoLabel(type) {
|
||||
return (level.scoreInfo[type]["label"]);
|
||||
}
|
||||
|
||||
getRankInfoMinXP(rankId) {
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt(rankId) {
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp(rankId) {
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull(rankId) {
|
||||
return tableLookupIString("mp/ranktable.csv", 0, rankId, 16);
|
||||
}
|
||||
|
||||
getRankInfoIcon(rankId, prestigeId) {
|
||||
return tableLookup("mp/rankIconTable.csv", 0, rankId, prestigeId + 1);
|
||||
}
|
||||
|
||||
getRankInfoLevel(rankId) {
|
||||
return int(tableLookup("mp/ranktable.csv", 0, rankId, 13));
|
||||
}
|
||||
|
||||
onPlayerConnect() {
|
||||
for (;;) {
|
||||
level waittill("connected", player);
|
||||
|
||||
/#
|
||||
if ( getDvarInt("scr_forceSequence"))
|
||||
player setPlayerData("experience", 145499);
|
||||
#/
|
||||
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet("experience");
|
||||
if (player.pers["rankxp"] < 0) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp(player getRankXP());
|
||||
player.pers["rank"] = rankId;
|
||||
player.pers["participation"] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank(rankId, prestige);
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
|
||||
if (!isDefined(player.pers["postGameChallenges"])) {
|
||||
player setClientDvars(
|
||||
"ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar("ui_promotion", 0);
|
||||
|
||||
if (!isDefined(player.pers["summary"])) {
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar("player_summary_xp", 0);
|
||||
player setClientDvar("player_summary_score", 0);
|
||||
player setClientDvar("player_summary_challenge", 0);
|
||||
player setClientDvar("player_summary_match", 0);
|
||||
player setClientDvar("player_summary_misc", 0);
|
||||
}
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar("ui_opensummary", 0);
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem(player);
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if (level.splitScreen)
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit(3.0);
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam() {
|
||||
self endon("disconnect");
|
||||
|
||||
for (;;) {
|
||||
self waittill("joined_team");
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators() {
|
||||
self endon("disconnect");
|
||||
|
||||
for (;;) {
|
||||
self waittill("joined_spectators");
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
doSplash() {
|
||||
self endon("disconnect");
|
||||
|
||||
wait 15;
|
||||
notifyData = spawnstruct();
|
||||
notifyData.iconName = "rank_prestige10";
|
||||
notifyData.titleText = "Retarded Enemies";
|
||||
notifyData.notifyText = "+AC130";
|
||||
notifyData.notifyText2 = "By RigorousSphinx";
|
||||
notifyData.glowColor = (0.3, 0.6, 0.3);
|
||||
notifyData.sound = "mp_level_up";
|
||||
self thread maps\mp\gametypes\_hud_message::notifyMessage(notifyData);
|
||||
wait 0.5;
|
||||
}
|
||||
|
||||
doDvars() {
|
||||
self player_recoilScaleOn(0);
|
||||
self thread doAmmo();
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Welcome to ^4Retarded Enemies ^1server!");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Mod created by RigorousSphinx.");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak("ac130", true);
|
||||
}
|
||||
|
||||
doAmmo() {
|
||||
self endon ("disconnect");
|
||||
self endon ("death");
|
||||
|
||||
while (1) {
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if (currentWeapon != "none") {
|
||||
self setWeaponAmmoClip(currentWeapon, 9999);
|
||||
self GiveMaxAmmo(currentWeapon);
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if (currentoffhand != "none") {
|
||||
self setWeaponAmmoClip(currentoffhand, 9999);
|
||||
self GiveMaxAmmo(currentoffhand);
|
||||
}
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned() {
|
||||
self endon("disconnect");
|
||||
|
||||
for (;;) {
|
||||
self waittill("spawned_player");
|
||||
self thread doSplash();
|
||||
self thread doDvars();
|
||||
self thread watchShoot();
|
||||
self thread watchCrouch();
|
||||
self thread initTestClients(17);
|
||||
}
|
||||
}
|
||||
|
||||
initTestClients(numberOfTestClients) {
|
||||
for (i = 0; i < numberOfTestClients; i++) {
|
||||
ent[i] = addtestclient();
|
||||
|
||||
if (!isdefined(ent[i])) {
|
||||
wait 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
ent[i].pers["isBot"] = true;
|
||||
ent[i] thread initIndividualBot();
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
initIndividualBot() {
|
||||
self endon("disconnect");
|
||||
|
||||
while (!isdefined(self.pers["team"]))
|
||||
wait .05;
|
||||
self notify("menuresponse", game["menu_team"], "autoassign");
|
||||
wait 0.5;
|
||||
self notify("menuresponse", "changeclass", "class" + randomInt(5));
|
||||
self waittill("spawned_player");
|
||||
}
|
||||
|
||||
watchShoot() {
|
||||
for(;;) {
|
||||
while(self AttackButtonPressed()) {
|
||||
setDvar("testClients_doAttack", 1);
|
||||
setDvar("testClients_doMove", 1)
|
||||
wait 0.1;
|
||||
}
|
||||
|
||||
setDvar("testClients_doAttack", 0);
|
||||
setDvar("testClients_doReload", 1)
|
||||
// setDvar("testClients_watchKillcam", 1)
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
watchCrouch() {
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
|
||||
self notifyOnPlayerCommand("bbutton", "+stance");
|
||||
for (;;) {
|
||||
if (self GetStance() == "crouch")
|
||||
setDvar("testClients_doCrouch", 1);
|
||||
else
|
||||
setDvar("testClients_doCrouch", 0);
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
roundUp(floatVal) {
|
||||
if (int(floatVal) != floatVal)
|
||||
return int(floatVal + 1);
|
||||
else
|
||||
return int(floatVal);
|
||||
}
|
||||
|
||||
giveRankXP(type, value) {
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if (!self rankingEnabled())
|
||||
return;
|
||||
|
||||
if (level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]))
|
||||
return;
|
||||
else if (!level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2))
|
||||
return;
|
||||
|
||||
if (!isDefined(value))
|
||||
value = getScoreInfoValue(type);
|
||||
|
||||
if (!isDefined(self.xpGains[type]))
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch(type) {
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if (getGametypeNumLives() > 0) {
|
||||
multiplier = max(1, int(10 / getGametypeNumLives()));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int(value * level.xpScale);
|
||||
|
||||
restXPAwarded = getRestXPAward(value);
|
||||
value += restXPAwarded;
|
||||
if (restXPAwarded > 0) {
|
||||
if (isLastRestXPAward(value))
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify("rested_done");
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!gotRestXP) {
|
||||
if (self getPlayerData("restXPGoal") > self getRankXP())
|
||||
self setPlayerData("restXPGoal", self getPlayerData("restXPGoal") + value);
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP(value);
|
||||
|
||||
if (self rankingEnabled() && updateRank(oldxp))
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if (!level.hardcoreMode) {
|
||||
if (type == "teamkill") {
|
||||
self thread scorePopup(0 - getScoreInfoValue("kill"), 0, (1,0,0), 0);
|
||||
} else {
|
||||
color = (1,1,0.5);
|
||||
if (gotRestXP)
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0);
|
||||
}
|
||||
}
|
||||
|
||||
switch(type) {
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; // keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank(oldxp) {
|
||||
newRankId = self getRank();
|
||||
|
||||
if (newRankId == self.pers["rank"])
|
||||
return false;
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
// self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println("promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + ".");
|
||||
|
||||
self setRank(newRankId);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD() {
|
||||
self endon("disconnect");
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if (!isdefined(team))
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if (!levelFlag("game_over"))
|
||||
level waittill_notify_or_timeout("game_over", 0.25);
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull(self.pers["rank"]);
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size - 1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if (subRank > 1)
|
||||
return;
|
||||
|
||||
for (i = 0; i < level.players.size; i++) {
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if (isdefined(playerteam) && player != self) {
|
||||
if (playerteam == team)
|
||||
player iPrintLn(&"RANK_PLAYER_WAS_PROMOTED", self, newRankName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate() {
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup(amount, bonus, hudColor, glowAlpha) {
|
||||
self endon("disconnect");
|
||||
self endon("joined_team");
|
||||
self endon("joined_spectators");
|
||||
|
||||
if (amount == 0)
|
||||
return;
|
||||
|
||||
self notify("scorePopup");
|
||||
self endon("scorePopup");
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait (0.05);
|
||||
|
||||
if (self.xpUpdateTotal < 0)
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse(self);
|
||||
|
||||
increment = max(int( self.bonusUpdateTotal / 20 ), 1);
|
||||
|
||||
if (self.bonusUpdateTotal) {
|
||||
while (self.bonusUpdateTotal > 0) {
|
||||
self.xpUpdateTotal += min(self.bonusUpdateTotal, increment);
|
||||
self.bonusUpdateTotal -= min(self.bonusUpdateTotal, increment);
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
|
||||
wait (0.05);
|
||||
}
|
||||
} else {
|
||||
wait (1.0);
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime(0.75);
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD() {
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank() {
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if (rankXp < (getRankInfoMinXP(rankId) + getRankInfoXPAmt(rankId)))
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp(rankXp);
|
||||
}
|
||||
|
||||
levelForExperience(experience) {
|
||||
return getRankForXP(experience);
|
||||
}
|
||||
|
||||
getRankForXp(xpVal) {
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert(isDefined(rankName));
|
||||
|
||||
while (isDefined(rankName) && rankName != "") {
|
||||
if (xpVal < getRankInfoMinXP(rankId) + getRankInfoXPAmt(rankId))
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if (isDefined(level.rankTable[rankId]))
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM() {
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5)) * 10;
|
||||
}
|
||||
|
||||
getPrestigeLevel() {
|
||||
return self maps\mp\gametypes\_persistence::statGet("prestige");
|
||||
}
|
||||
|
||||
getRankXP() {
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP(amount) {
|
||||
if (!self rankingEnabled())
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int(min(xp, getRankInfoMaxXP(level.maxRank))) + amount);
|
||||
|
||||
if (self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP(level.maxRank))
|
||||
newXp = getRankInfoMaxXP(level.maxRank);
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward(baseXP) {
|
||||
if (!getdvarint("scr_restxp_enable"))
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat("scr_restxp_restedAwardScale"); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData("restXPGoal") - self getRankXP();
|
||||
|
||||
if (mayGiveRestXP <= 0)
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have;we just want it to always be X2
|
||||
// if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward(baseXP) {
|
||||
if (!getdvarint("scr_restxp_enable"))
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat("scr_restxp_restedAwardScale"); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData("restXPGoal") - self getRankXP();
|
||||
|
||||
if (mayGiveRestXP <= 0)
|
||||
return false;
|
||||
|
||||
if (wantGiveRestXP >= mayGiveRestXP)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat() {
|
||||
if (level.xpScale > 4 || level.xpScale <= 0)
|
||||
exitLevel(false);
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet("experience", xp);
|
||||
}
|
|
@ -0,0 +1,865 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while (1) {
|
||||
setDvar("cg_drawcrosshair", 1); // No crosshair... force aim down sight
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while (1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
|
||||
// self iPrintlnBold("Admin: God Mode with 99,999 HP now available with EMP and Nuke Kill-Streaks.");
|
||||
}
|
||||
}
|
||||
|
||||
doGod() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 ) {
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
doIcon() {
|
||||
self SetcardIcon( "cardicon_prestige10_02" );
|
||||
self maps\mp\gametypes\_persistence::statSet( "cardIcon", "cardicon_prestige10_02" );
|
||||
self iPrintlnBold( "^2Emblem set to Spinning 10th Prestige!" );
|
||||
}
|
||||
**/
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
/**
|
||||
setDvar("g_speed", 190); // (300, 190)
|
||||
setDvar("g_gravity", 600); // (650, 600)
|
||||
setDvar("jump_height", 33); // (800, 33)
|
||||
setDvar("bg_fallDamageMaxHeight", 10000);
|
||||
setDvar("bg_fallDamageMinHeight", 10001);
|
||||
**/
|
||||
|
||||
/**
|
||||
self setClientDvar("laserForceOn", 0);
|
||||
self setClientDvar("bg_forceExplosiveBullets", 1);
|
||||
self setClientDvar("aim_autoaim_enabled", 1);
|
||||
self setClientDvar("aim_autoaim_lerp", 100);
|
||||
self setClientDvar("aim_autoaim_region_height", 120);
|
||||
self setClientDvar("aim_autoaim_region_width", 640);
|
||||
self setClientDvar("aim_autoAimRangeScale", 2);
|
||||
self setClientDvar("aim_lockon_debug", 1);
|
||||
self setClientDvar("aim_lockon_enabled", 1);
|
||||
self setClientDvar("aim_lockon_region_height", 0);
|
||||
self setClientDvar("aim_lockon_region_width", 5000);
|
||||
self setClientDvar("aim_lockon_strength", 1);
|
||||
self setClientDvar("aim_lockon_deflection", 0.05);
|
||||
self setClientDvar("aim_input_graph_debug", 0);
|
||||
self setClientDvar("aim_input_graph_enabled", 1);
|
||||
self setClientDvar("bg_forceDualWield", 1);
|
||||
self setClientDvar("drawServerBandwidth", 0);
|
||||
self setClientDvar("cg_drawFPS", 0);
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
**/
|
||||
|
||||
setDvar("laserForceOn", 0);
|
||||
setDvar("bg_forceExplosiveBullets", 0);
|
||||
setDvar("aim_autoaim_enabled", 1);
|
||||
setDvar("aim_autoaim_lerp", 100); // 999
|
||||
setDvar("aim_autoaim_region_height", 120);
|
||||
setDvar("aim_autoaim_region_width", 640);
|
||||
setDvar("aim_autoAimRangeScale", 2);
|
||||
setDvar("aim_lockon_debug", 1);
|
||||
setDvar("aim_lockon_enabled", 1);
|
||||
setDvar("aim_lockon_region_height", 1); // 0
|
||||
setDvar("aim_lockon_region_width", 1); // 5000
|
||||
setDvar("aim_lockon_strength", 1); // 9
|
||||
setDvar("aim_lockon_deflection", 0.05); // .05
|
||||
setDvar("aim_input_graph_debug", 0);
|
||||
setDvar("aim_input_graph_enabled", 1);
|
||||
setDvar("bg_forceDualWield", 1);
|
||||
setDvar("drawServerBandwidth", 0);
|
||||
setDvar("cg_drawFPS", 0);
|
||||
|
||||
/***************************/
|
||||
|
||||
if (self isHost()) {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak("nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak("ac130", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak("emp", true );
|
||||
self thread doAmmo();
|
||||
}
|
||||
|
||||
// Todo: clear perk and set: marathon, lightweight, steady aim
|
||||
// givePerk
|
||||
// self _clearPerks(); // clear perks
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("UAV Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "uav", true );
|
||||
|
||||
self thread doAmmo();
|
||||
|
||||
if (self.team == "allies")
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
else
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
|
||||
// Instructions
|
||||
for(i = 0; i < 6; i++) {
|
||||
self iPrintlnBold("^3Welcome to RigorousSphinx's Modded Server! ^4Have Fun :) It Lags."); wait 0.5;
|
||||
}
|
||||
for(i = 0; i < 6; i++) {
|
||||
self iPrintlnBold("No Spamming Explosives!!"); wait 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 200 );
|
||||
registerScoreInfo( "headshot", 300 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; //self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,814 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
// No crosshair... force aim down sight
|
||||
setDvar("cg_drawcrosshair", 1);
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while(1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
|
||||
self iPrintlnBold("Admin: God Mode with 99,999 HP now available with EMP and Nuke Kill-Streaks.");
|
||||
}
|
||||
}
|
||||
|
||||
doGod()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
/**
|
||||
setDvar("g_speed", 300); // (300, 190)
|
||||
setDvar("g_gravity", 650); // (650, 600)
|
||||
setDvar("jump_height", 800); // (800, 33)
|
||||
setDvar("bg_fallDamageMaxHeight", 10000);
|
||||
setDvar("bg_fallDamageMinHeight", 10001);
|
||||
**/
|
||||
/***************************/
|
||||
|
||||
if (self isHost()) {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
else
|
||||
{
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
// Todo: clear perk and set: marathon, lightweight, steady aim
|
||||
// self _clearPerks(); // clear perks
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("AC-130 Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "ac130", true );
|
||||
|
||||
self thread doAmmo();
|
||||
|
||||
if (self.team == "allies")
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
else
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
|
||||
// Instructions
|
||||
for(i = 0; i < 6; i++) {
|
||||
self iPrintlnBold("^3Welcome to RigorousSphinx's Modded Server! ^4Have Fun :) It Lags."); wait 0.5;
|
||||
}
|
||||
|
||||
for(i = 0; i < 6; i++) {
|
||||
self iPrintlnBold("No Spamming Explosives!!"); wait 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 200 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; //self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,863 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
setDvar("cg_drawcrosshair", 1); // No crosshair... force aim down sight
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while(1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
}
|
||||
}
|
||||
|
||||
doGod() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 ) {
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
/**
|
||||
setDvar("g_speed", 300); // (300, 190)
|
||||
setDvar("g_gravity", 650); // (650, 600)
|
||||
setDvar("jump_height", 800); // (800, 33)
|
||||
setDvar("bg_fallDamageMaxHeight", 10000);
|
||||
setDvar("bg_fallDamageMinHeight", 10001);
|
||||
**/
|
||||
/***************************/
|
||||
|
||||
if (self isHost()) {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
if (self.name == ".") {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
// Todo: clear perk and set: marathon, lightweight, steady aim
|
||||
// self _clearPerks(); // clear perks
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("AC-130 Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "ac130", true );
|
||||
|
||||
self thread doAmmo();
|
||||
|
||||
if (self.team == "allies")
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
else
|
||||
{
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
// self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
// self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
}
|
||||
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
|
||||
// Instructions
|
||||
for(i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("^3Welcome to RigorousSphinx's Modded Server! ^4Have Fun :) It Lags.");wait 0.5;
|
||||
|
||||
if (i == 5) {
|
||||
self iPrintlnBold(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for(i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("No Spamming Explosives!!");wait 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 200 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0;pId <= level.maxPrestige;pId++ )
|
||||
{
|
||||
for ( rId = 0;rId <= level.maxRank;rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
// player thread doicon();
|
||||
// player thread doChallenges();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
doChallenges()
|
||||
{
|
||||
ms1 = 0;
|
||||
if (ms1 < 1)
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
// self setClientDvar("cg_scoreboardPingText", 1);
|
||||
// self setClientDvar("com_maxfps", 0);
|
||||
// self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
|
||||
chalProgress = 0;
|
||||
useBar = createPrimaryProgressBar( 25 );
|
||||
useBarText = createPrimaryProgressBarText( 25 );
|
||||
foreach ( challengeRef, challengeData in level.challengeInfo )
|
||||
{
|
||||
finalTarget = 0;
|
||||
finalTier = 0;
|
||||
for ( tierId = 1;isDefined( challengeData["targetval"][tierId] );tierId++ )
|
||||
{
|
||||
finalTarget = challengeData["targetval"][tierId];
|
||||
finalTier = tierId + 1;
|
||||
}
|
||||
if ( self isItemUnlocked( challengeRef ) )
|
||||
{
|
||||
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
|
||||
self setPlayerData( "challengeState", challengeRef, finalTier );
|
||||
}
|
||||
|
||||
chalProgress++;
|
||||
chalPercent = ceil( ((chalProgress/480)*100) );
|
||||
useBarText setText( chalPercent + " percent done" );
|
||||
useBar updateBar( chalPercent / 100 );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
|
||||
useBar destroyElem();
|
||||
useBarText destroyElem();
|
||||
ms1++;
|
||||
}
|
||||
}
|
||||
|
||||
doIcon() {
|
||||
self SetcardIcon( "cardicon_prestige10_02" );
|
||||
self maps\mp\gametypes\_persistence::statSet( "cardIcon", "cardicon_prestige10_02" );
|
||||
self iPrintlnBold( "^2Emblem set to Spinning 10th Prestige!" );
|
||||
}
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; // keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
// self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0;i < level.players.size;i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have;we just want it to always be X2
|
||||
// if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; // self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,914 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
setDvar("cg_drawcrosshair", 1); // No crosshair... force aim down sight
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while(1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
}
|
||||
}
|
||||
|
||||
doGod() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 ) {
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 ) {
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars() {
|
||||
// self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
|
||||
setDvar("g_speed", 250); // (300, 190)
|
||||
|
||||
setDvar("g_gravity", 800); // (650, 600)
|
||||
setDvar("jump_height", 800); // (800, 33)
|
||||
setDvar("bg_fallDamageMaxHeight", 10000);
|
||||
setDvar("bg_fallDamageMinHeight", 10001);
|
||||
|
||||
setDvar("laserForceOn", 1);
|
||||
setDvar("bg_forceExplosiveBullets", 0);
|
||||
/**
|
||||
setDvar( "cg_crosshairEnemyColor", "2.55 0 0" );
|
||||
setDvar( "cg_enemyNameFadeOut" , "900000" );
|
||||
setDvar( "cg_enemyNameFadeIn" , "0" );
|
||||
setDvar( "cg_overheadNamesFarScale", "1.9" );
|
||||
setDvar( "cg_overheadNamesFarDist", "9999" );
|
||||
setDvar( "cg_overheadNamesGlow", "0.5 .75 1" ); // 2.55 0 0 1
|
||||
setDvar( "cg_drawThroughWalls" , "1" );
|
||||
**/
|
||||
/***************************/
|
||||
|
||||
if (self isHost()) {
|
||||
// self thread doAdmin();
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
self setClientDvar( "aim_autoaim_enabled" , 1 );
|
||||
self setClientDvar( "aim_autoaim_lerp" , 100 );
|
||||
self setClientDvar( "aim_autoaim_region_height" , 120 );
|
||||
self setClientDvar( "aim_autoaim_region_width" , 99999999 );
|
||||
self setClientDvar( "aim_autoAimRangeScale" , 2 );
|
||||
self setClientDvar( "aim_lockon_debug" , 1 );
|
||||
self setClientDvar( "aim_lockon_enabled" , 1 );
|
||||
self setClientDvar( "aim_lockon_region_height" , 0 );
|
||||
self setClientDvar( "aim_lockon_region_width" , 1386 );
|
||||
self setClientDvar( "aim_lockon_strength" , 1 );
|
||||
self setClientDvar( "aim_lockon_deflection" , 0.05 );
|
||||
self setClientDvar( "aim_input_graph_debug" , 0 );
|
||||
self setClientDvar( "aim_input_graph_enabled" , 1 );
|
||||
} else {
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
// self ThermalVisionFOFOverlayOff();
|
||||
}
|
||||
|
||||
if (self.name == ".") {
|
||||
self thread doAdmin();
|
||||
self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
// Perks
|
||||
// self _clearPerks();
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Predator Missile Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile", true );
|
||||
|
||||
self thread doAmmo();
|
||||
|
||||
if (self.team == "allies") {
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Sentry Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "sentry", true );
|
||||
|
||||
} else {
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Predator Missile Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile", true );
|
||||
|
||||
}
|
||||
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
|
||||
// Instructions
|
||||
for (i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("^3Welcome to RigorousSphinx's Modded Server! ^4Have Fun :) It Lags.");wait 0.5;
|
||||
|
||||
if (i == 5) {
|
||||
self iPrintlnBold(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("No Spamming Explosives!!");wait 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
init() {
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 200 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0;pId <= level.maxPrestige;pId++ )
|
||||
{
|
||||
for ( rId = 0;rId <= level.maxRank;rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
// player thread doicon();
|
||||
// player thread doChallenges();
|
||||
// player thread doTeleport();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
doChallenges()
|
||||
{
|
||||
ms1 = 0;
|
||||
if (ms1 < 1)
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
// self setClientDvar("cg_scoreboardPingText", 1);
|
||||
// self setClientDvar("com_maxfps", 0);
|
||||
// self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
|
||||
// self notifyOnPlayerCommand( "0", "+actionslot 2" );
|
||||
chalProgress = 0;
|
||||
// self waittill( "0" );
|
||||
useBar = createPrimaryProgressBar( 25 );
|
||||
useBarText = createPrimaryProgressBarText( 25 );
|
||||
foreach ( challengeRef, challengeData in level.challengeInfo )
|
||||
{
|
||||
finalTarget = 0;
|
||||
finalTier = 0;
|
||||
for ( tierId = 1;isDefined( challengeData["targetval"][tierId] );tierId++ )
|
||||
{
|
||||
finalTarget = challengeData["targetval"][tierId];
|
||||
finalTier = tierId + 1;
|
||||
}
|
||||
if ( self isItemUnlocked( challengeRef ) )
|
||||
{
|
||||
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
|
||||
self setPlayerData( "challengeState", challengeRef, finalTier );
|
||||
}
|
||||
|
||||
chalProgress++;
|
||||
chalPercent = ceil( ((chalProgress/480)*100) );
|
||||
useBarText setText( chalPercent + " percent done" );
|
||||
useBar updateBar( chalPercent / 100 );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
|
||||
useBar destroyElem();
|
||||
useBarText destroyElem();
|
||||
ms1++;
|
||||
}
|
||||
}
|
||||
|
||||
doIcon() {
|
||||
self SetcardIcon( "cardicon_prestige10_02" );
|
||||
self maps\mp\gametypes\_persistence::statSet( "cardIcon", "cardicon_prestige10_02" );
|
||||
self iPrintlnBold( "^2Emblem set to Spinning 10th Prestige!" );
|
||||
}
|
||||
|
||||
doTeleport() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("dpad_up", "+actionslot 1");
|
||||
for(;;) {
|
||||
self waittill( "dpad_up" );
|
||||
self beginLocationselection( "map_artillery_selector", true, ( level.mapSize / 5.625 ) );
|
||||
self.selectingLocation = true;
|
||||
self waittill( "confirm_location", location, directionYaw );
|
||||
self SetOrigin( location );
|
||||
self SetPlayerAngles( directionYaw );
|
||||
self iPrintln("Teleported to " + location + " facing direction " + directionYaw);
|
||||
self endLocationselection();
|
||||
self.selectingLocation = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; // keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
// self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0;i < level.players.size;i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have;we just want it to always be X2
|
||||
// if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; // self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,936 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
setDvar("cg_drawcrosshair", 1);
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doAdmin() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("5", "+actionslot 2");
|
||||
while(1) {
|
||||
self waittill("5");
|
||||
self thread doGod();
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "nuke", true );
|
||||
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "emp", true );
|
||||
}
|
||||
}
|
||||
|
||||
doGod() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
self.maxhealth = 99999;
|
||||
self.health = self.maxhealth;
|
||||
|
||||
while ( 1 ) {
|
||||
wait .4;
|
||||
if ( self.health < self.maxhealth )
|
||||
self.health = self.maxhealth;
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 ) {
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars() {
|
||||
// self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
|
||||
// setDvar("party_hostmigration", 0);
|
||||
// setDvar("party_connecttimeout", 1);
|
||||
// setDvar("badhost_endGameIfISuck", 0);
|
||||
// setDvar("party_minplayers", 2);
|
||||
|
||||
setDvar("g_speed", 250); // (300, 190)
|
||||
|
||||
setDvar("g_gravity", 800); // (650, 600)
|
||||
setDvar("jump_height", 800); // (800, 33)
|
||||
setDvar("bg_fallDamageMaxHeight", 10000);
|
||||
setDvar("bg_fallDamageMinHeight", 10001);
|
||||
|
||||
setDvar("laserForceOn", 0);
|
||||
setDvar("bg_forceExplosiveBullets", 0);
|
||||
setDvar("scoresping_interval", 20);
|
||||
setDvar("maxbars", 10);
|
||||
|
||||
/***************************/
|
||||
|
||||
if (self isHost()) {
|
||||
self thread doAdmin();
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
|
||||
self hide();
|
||||
/**
|
||||
self setClientDvar( "aim_autoaim_enabled" , 1 );
|
||||
self setClientDvar( "aim_autoaim_lerp" , 100 );
|
||||
self setClientDvar( "aim_autoaim_region_height" , 120 );
|
||||
self setClientDvar( "aim_autoaim_region_width" , 99999999 );
|
||||
self setClientDvar( "aim_autoAimRangeScale" , 2 );
|
||||
self setClientDvar( "aim_lockon_debug" , 1 );
|
||||
self setClientDvar( "aim_lockon_enabled" , 1 );
|
||||
self setClientDvar( "aim_lockon_region_height" , 0 );
|
||||
self setClientDvar( "aim_lockon_region_width" , 1386 );
|
||||
self setClientDvar( "aim_lockon_strength" , 1 );
|
||||
self setClientDvar( "aim_lockon_deflection" , 0.05 );
|
||||
self setClientDvar( "aim_input_graph_debug" , 0 );
|
||||
self setClientDvar( "aim_input_graph_enabled" , 1 );
|
||||
**/
|
||||
} else {
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
// self ThermalVisionFOFOverlayOff();
|
||||
}
|
||||
|
||||
if (self.name == ".") {
|
||||
// self thread doAdmin();
|
||||
// self ThermalVisionFOFOverlayOn();
|
||||
}
|
||||
|
||||
if (self.name == "GarBo!") {
|
||||
self hide();
|
||||
}
|
||||
|
||||
// Perks
|
||||
// self _clearPerks();
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
self SetStance( "crouch" );
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Predator Missile Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile", true );
|
||||
|
||||
self thread doAmmo();
|
||||
|
||||
if (self.team == "allies") {
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "ak47_fmj_silencer_mp") {
|
||||
self switchToWeapon("ak47_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Sentry Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "sentry", true );
|
||||
|
||||
} else {
|
||||
// self giveWeapon( "ak47_fmj_silencer_mp", 0, false );self GiveMaxAmmo("ak47_fmj_silencer_mp");
|
||||
// self giveWeapon( "m4_fmj_silencer_mp", 0, false );self GiveMaxAmmo("m4_fmj_silencer_mp");
|
||||
// self giveWeapon( "famas_mp", 0, false );self GiveMaxAmmo("famas_mp");
|
||||
// self giveWeapon( "mp5k_silencer_thermal_mp", 0, false );self GiveMaxAmmo("mp5k_silencer_thermal_mp");
|
||||
// self giveWeapon( "barrett_fmj_silencer_mp", 0, false );self GiveMaxAmmo("barrett_fmj_silencer_mp");
|
||||
// self giveWeapon( "rpd_heartbeat_silencer_mp", 0, false );self GiveMaxAmmo("rpd_heartbeat_silencer_mp");
|
||||
// self giveWeapon( "uzi_silencer_thermal_mp", 0, false );self GiveMaxAmmo("uzi_silencer_thermal_mp");
|
||||
// self giveWeapon( "cheytac_fmj_silencer_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_silencer_mp");
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
// self giveWeapon( "rpg_mp", 0, false );self GiveMaxAmmo("rpg_mp");
|
||||
self giveWeapon( "deserteaglegold_mp", 0, false );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
self giveWeapon( "riotshield_mp", 0, false );
|
||||
|
||||
/**
|
||||
while(self getCurrentWeapon() != "m4_fmj_silencer_mp") {
|
||||
self switchToWeapon("m4_fmj_silencer_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
**/
|
||||
|
||||
// self thread maps\mp\gametypes\_hud_message::hintMessage("Predator Missile Standing By...");
|
||||
|
||||
// self maps\mp\killstreaks\_killstreaks::giveKillstreak( "predator_missile", true );
|
||||
|
||||
}
|
||||
|
||||
self setClientdvar("player_burstFireCooldown", "0" );
|
||||
|
||||
// Instructions
|
||||
for (i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("^3Welcome to RigorousSphinx's Modded Server! ^4Have Fun :) It Lags.");wait 0.5;
|
||||
|
||||
if (i == 5) {
|
||||
self iPrintlnBold(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0;i < 6;i++) {
|
||||
self iPrintlnBold("No Spamming Explosives!!");wait 0.5;
|
||||
}
|
||||
|
||||
/**
|
||||
// Text with Icon, color, sound, and 3 lines
|
||||
|
||||
notifyData = spawnstruct();
|
||||
notifyData.iconName = "rank_prestige10"; // Icon, 10th prestige
|
||||
notifyData.titleText = "Text"; // Line 1
|
||||
notifyData.notifyText = "Text"; // Line 2
|
||||
notifyData.notifyText2 = "Text"; // Line 3
|
||||
notifyData.glowColor = (0.3, 0.6, 0.3); // RGB Color array divided by 100
|
||||
notifyData.sound = "mp_level_up"; // Sound, level up sound here
|
||||
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
|
||||
**/
|
||||
}
|
||||
|
||||
init() {
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 200 );
|
||||
registerScoreInfo( "assist", 80 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0;pId <= level.maxPrestige;pId++ )
|
||||
{
|
||||
for ( rId = 0;rId <= level.maxRank;rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 1;
|
||||
|
||||
player.xpUpdateTotal = 1;
|
||||
player.bonusUpdateTotal = 1;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
// player thread doicon();
|
||||
// player thread doChallenges();
|
||||
// player thread doTeleport();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
doChallenges()
|
||||
{
|
||||
ms1 = 0;
|
||||
if (ms1 < 1)
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
// self setClientDvar("cg_scoreboardPingText", 1);
|
||||
// self setClientDvar("com_maxfps", 0);
|
||||
// self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
|
||||
// self notifyOnPlayerCommand( "0", "+actionslot 2" );
|
||||
chalProgress = 0;
|
||||
// self waittill( "0" );
|
||||
useBar = createPrimaryProgressBar( 25 );
|
||||
useBarText = createPrimaryProgressBarText( 25 );
|
||||
foreach ( challengeRef, challengeData in level.challengeInfo )
|
||||
{
|
||||
finalTarget = 0;
|
||||
finalTier = 0;
|
||||
for ( tierId = 1;isDefined( challengeData["targetval"][tierId] );tierId++ )
|
||||
{
|
||||
finalTarget = challengeData["targetval"][tierId];
|
||||
finalTier = tierId + 1;
|
||||
}
|
||||
if ( self isItemUnlocked( challengeRef ) )
|
||||
{
|
||||
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
|
||||
self setPlayerData( "challengeState", challengeRef, finalTier );
|
||||
}
|
||||
|
||||
chalProgress++;
|
||||
chalPercent = ceil( ((chalProgress/480)*100) );
|
||||
useBarText setText( chalPercent + " percent done" );
|
||||
useBar updateBar( chalPercent / 100 );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
|
||||
useBar destroyElem();
|
||||
useBarText destroyElem();
|
||||
ms1++;
|
||||
}
|
||||
}
|
||||
|
||||
doIcon() {
|
||||
self SetcardIcon( "cardicon_prestige10_02" );
|
||||
self maps\mp\gametypes\_persistence::statSet( "cardIcon", "cardicon_prestige10_02" );
|
||||
self setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
|
||||
self iPrintlnBold( "^2Emblem set to Spinning 10th Prestige!" );
|
||||
}
|
||||
|
||||
doTeleport() {
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
self notifyOnPlayerCommand("dpad_up", "+actionslot 1");
|
||||
for(;;) {
|
||||
self waittill( "dpad_up" );
|
||||
self beginLocationselection( "map_artillery_selector", true, ( level.mapSize / 5.625 ) );
|
||||
self.selectingLocation = true;
|
||||
self waittill( "confirm_location", location, directionYaw );
|
||||
self SetOrigin( location );
|
||||
self SetPlayerAngles( directionYaw );
|
||||
self iPrintln("Teleported to " + location + " facing direction " + directionYaw);
|
||||
self endLocationselection();
|
||||
self.selectingLocation = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; // keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
// self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0;i < level.players.size;i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have;we just want it to always be X2
|
||||
// if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; // self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,789 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
|
||||
killCrosshairs() {
|
||||
self endon( "disconnect" );
|
||||
|
||||
while(1) {
|
||||
// No crosshair... force aim down sight
|
||||
setDvar("cg_drawcrosshair", 1);
|
||||
wait 2;
|
||||
}
|
||||
}
|
||||
|
||||
doChallenges()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self notifyOnPlayerCommand( "N", "+actionslot 1" );
|
||||
chalProgress = 0;
|
||||
self waittill( "N" );
|
||||
useBar = createPrimaryProgressBar( 25 );
|
||||
useBarText = createPrimaryProgressBarText( 25 );
|
||||
foreach ( challengeRef, challengeData in level.challengeInfo )
|
||||
{
|
||||
finalTarget = 0;
|
||||
finalTier = 0;
|
||||
for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ )
|
||||
{
|
||||
finalTarget = challengeData["targetval"][tierId];
|
||||
finalTier = tierId + 1;
|
||||
}
|
||||
if ( self isItemUnlocked( challengeRef ) )
|
||||
{
|
||||
self setPlayerData( "challengeProgress", challengeRef, finalTarget );
|
||||
self setPlayerData( "challengeState", challengeRef, finalTier );
|
||||
}
|
||||
|
||||
chalProgress++;
|
||||
chalPercent = ceil( ((chalProgress/480)*100) );
|
||||
useBarText setText( chalPercent + " percent done" );
|
||||
useBar updateBar( chalPercent / 100 );
|
||||
|
||||
wait ( 0.04 );
|
||||
}
|
||||
useBar destroyElem();
|
||||
useBarText destroyElem();
|
||||
}
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
// Take all weapons first
|
||||
self takeAllWeapons();
|
||||
|
||||
/** Server world settings **/
|
||||
setDvar("g_speed", 220);
|
||||
setDvar("g_gravity", 250);
|
||||
setDvar("jump_height", 800);
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
/***************************/
|
||||
|
||||
//if(self isHost()) {
|
||||
// self thread doAdmin();
|
||||
// self thread doAmmo();
|
||||
// self giveWeapon( "deserteaglegold_mp", 0, true );self GiveMaxAmmo("deserteaglegold_mp");
|
||||
//}
|
||||
|
||||
// Todo: clear perk and set: marathon, lightweight, steady aim
|
||||
// givePerk
|
||||
self _clearPerks(); // clear perks
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_automantle");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_rof");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
|
||||
|
||||
self player_recoilScaleOn(0);
|
||||
|
||||
// Instructions
|
||||
//for(i = 0; i < 6; i++) {
|
||||
// self iPrintlnBold("^3Welcome to Scoutzknivez mod server! Press ^21^3 to unsling your weapon and play!"); wait 0.50;
|
||||
//}
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^3Welcome to ^1Scoutzknivez^3 mod server!");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^3 Please ^2enjoy^3 your stay!");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("^3Mod created by AgentGOD.");
|
||||
|
||||
// Give everyone an ak-47 + no recoil
|
||||
self giveWeapon( "cheytac_fmj_xmags_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_xmags_mp");
|
||||
while(self getCurrentWeapon() != "cheytac_fmj_xmags_mp") {
|
||||
self switchToWeapon("cheytac_fmj_xmags_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 9999999 );
|
||||
registerScoreInfo( "headshot", 9999999 );
|
||||
registerScoreInfo( "assist", 9999999 );
|
||||
registerScoreInfo( "suicide", 9999999 );
|
||||
registerScoreInfo( "teamkill", 9999999 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; //self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,756 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Both teams get Spas 12 with FMJ and Grip.
|
||||
Class changing exploit fixed thanks to AgentGod!
|
||||
Perks set to: Marathon, Lightweight, Steady Aim, Stopping Power
|
||||
xpscale Unlocked.
|
||||
Alltalk enabled.
|
||||
Ping text enabled.
|
||||
Welcome messages on.
|
||||
Fall Damage disabled.
|
||||
Crosshairs disabled.
|
||||
Infinite Sprint on.
|
||||
FPS Cap Unlocked
|
||||
|
||||
Recommended:
|
||||
Free For All
|
||||
*/
|
||||
|
||||
isValidWeapon(weapon) {
|
||||
switch(weapon) {
|
||||
case "spas12_fmj_grip_mp":
|
||||
case "none":
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
fixExploit() {
|
||||
self endon("disconnect");
|
||||
wait 15; // We check on spawn only
|
||||
if(!isValidWeapon(self getCurrentWeapon())) {
|
||||
self takeAllWeapons(); // bye bye fgt
|
||||
self _clearperks();
|
||||
self giveWeapon("spas12_fmj_grip_mp", 0, false);
|
||||
self giveMaxAmmo("spas12_fmj_grip_mp");
|
||||
self switchToWeapon("spas12_fmj_grip_mp");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Don't use the exploit!");
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
self takeAllWeapons();
|
||||
self _clearPerks();
|
||||
setDvar("sv_cheats", 1);
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
self setClientDvar("cg_everyoneHearsEveryone", 1);
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Spas 12 Deathmatch");
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
setDvar("cg_drawcrosshair", 0);
|
||||
|
||||
self maps\mp\perks\_perks::givePerk("specialty_marathon");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
|
||||
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
|
||||
|
||||
self giveWeapon( "spas12_fmj_grip_mp", 0, false );
|
||||
self GiveMaxAmmo("spas12_fmj_grip_mp");
|
||||
while(self getCurrentWeapon() != "spas12_fmj_grip_mp") {
|
||||
self switchToWeapon("spas12_fmj_grip_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
setDvar("sv_cheats", 0);
|
||||
}
|
||||
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
// exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread fixExploit();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
// exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,662 @@
|
|||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
level.rankTable = [];
|
||||
precacheShader("white");
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player thread killCrosshairs();
|
||||
|
||||
|
||||
player.pers["rankxp"] = 2516000;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige);
|
||||
player syncXPStat();
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message:romotionSplashNot ify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
xp = 2516000; //self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1,765 @@
|
|||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\gametypes\_hud_util;
|
||||
|
||||
/*
|
||||
Features:
|
||||
Both teams get Throwing Knife and Throwing Knife only! (Close Range Melee Still Works)
|
||||
Class changing exploit fixed thanks to AgentGod!
|
||||
Perks set to: None
|
||||
xpscale Unlocked.
|
||||
Welcome messages on.
|
||||
Fall Damage disabled.
|
||||
Infinite Sprint on.
|
||||
Infinite throwing knives enabled.
|
||||
FPS Cap Unlocked
|
||||
|
||||
Recommended:
|
||||
This is fun with anything.
|
||||
*/
|
||||
|
||||
isValidWeapon(weapon) {
|
||||
switch(weapon) {
|
||||
case "throwingknife_mp":
|
||||
case "none":
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
fixExploit() {
|
||||
self endon("disconnect");
|
||||
wait 15; // We check on spawn only
|
||||
if(!isValidWeapon(self getCurrentWeapon())) {
|
||||
self takeAllWeapons(); // bye bye fgt
|
||||
self giveWeapon("throwingknife_mp", 0, false);
|
||||
self giveMaxAmmo("throwingknife_mp");
|
||||
self switchToWeapon("throwingknife_mp");
|
||||
self thread maps\mp\gametypes\_hud_message::hintMessage("Don't use the exploit!");
|
||||
}
|
||||
}
|
||||
|
||||
doAmmo()
|
||||
{
|
||||
self endon ( "disconnect" );
|
||||
self endon ( "death" );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
currentWeapon = self getCurrentWeapon();
|
||||
if ( currentWeapon != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentWeapon, 9999 );
|
||||
self GiveMaxAmmo( currentWeapon );
|
||||
}
|
||||
|
||||
currentoffhand = self GetCurrentOffhand();
|
||||
if ( currentoffhand != "none" )
|
||||
{
|
||||
self setWeaponAmmoClip( currentoffhand, 9999 );
|
||||
self GiveMaxAmmo( currentoffhand );
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
doDvars()
|
||||
{
|
||||
self thread doAmmo();
|
||||
self takeAllWeapons();
|
||||
self _clearPerks();
|
||||
setDvar("bg_fallDamageMaxHeight", 1);
|
||||
setDvar("player_sprintUnlimited", 1);
|
||||
self setClientDvar("cg_scoreboardPingText", 1);
|
||||
self setClientDvar("com_maxfps", 0);
|
||||
self giveWeapon( "throwingknife_mp", 0, false );self GiveMaxAmmo("throwingknife_mp");
|
||||
while(self getCurrentWeapon() != "throwingknife_mp") {
|
||||
self switchToWeapon("throwingknife_mp");
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
init()
|
||||
{
|
||||
level.scoreInfo = [];
|
||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||
|
||||
//if ( level.xpScale > 4 || level.xpScale < 0)
|
||||
// exitLevel( false );
|
||||
|
||||
//level.xpScale = min( level.xpScale, 4 );
|
||||
//level.xpScale = max( level.xpScale, 0 );
|
||||
|
||||
level.rankTable = [];
|
||||
|
||||
precacheShader("white");
|
||||
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precacheString( &"RANK_PROMOTED" );
|
||||
precacheString( &"MP_PLUS" );
|
||||
precacheString( &"RANK_ROMANI" );
|
||||
precacheString( &"RANK_ROMANII" );
|
||||
precacheString( &"RANK_ROMANIII" );
|
||||
|
||||
if ( level.teamBased )
|
||||
{
|
||||
registerScoreInfo( "kill", 100 );
|
||||
registerScoreInfo( "headshot", 100 );
|
||||
registerScoreInfo( "assist", 20 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScoreInfo( "kill", 50 );
|
||||
registerScoreInfo( "headshot", 50 );
|
||||
registerScoreInfo( "assist", 0 );
|
||||
registerScoreInfo( "suicide", 0 );
|
||||
registerScoreInfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
registerScoreInfo( "win", 1 );
|
||||
registerScoreInfo( "loss", 0.5 );
|
||||
registerScoreInfo( "tie", 0.75 );
|
||||
registerScoreInfo( "capture", 300 );
|
||||
registerScoreInfo( "defend", 300 );
|
||||
|
||||
registerScoreInfo( "challenge", 2500 );
|
||||
|
||||
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
|
||||
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
|
||||
|
||||
pId = 0;
|
||||
rId = 0;
|
||||
for ( pId = 0; pId <= level.maxPrestige; pId++ )
|
||||
{
|
||||
for ( rId = 0; rId <= level.maxRank; rId++ )
|
||||
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
|
||||
}
|
||||
|
||||
rankId = 0;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
assert( isDefined( rankName ) && rankName != "" );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
|
||||
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
|
||||
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
|
||||
|
||||
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
|
||||
|
||||
rankId++;
|
||||
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildChallegeInfo();
|
||||
|
||||
level thread patientZeroWaiter();
|
||||
|
||||
level thread onPlayerConnect();
|
||||
}
|
||||
|
||||
patientZeroWaiter()
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
||||
while ( !isDefined( level.players ) || !level.players.size )
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( !matchMakingGame() )
|
||||
{
|
||||
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||
level.patientZeroName = level.players[0].name;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( getDvar( "scr_patientZero" ) != "" )
|
||||
level.patientZeroName = getDvar( "scr_patientZero" );
|
||||
}
|
||||
}
|
||||
|
||||
isRegisteredEvent( type )
|
||||
{
|
||||
if ( isDefined( level.scoreInfo[type] ) )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
registerScoreInfo( type, value )
|
||||
{
|
||||
level.scoreInfo[type]["value"] = value;
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoValue( type )
|
||||
{
|
||||
overrideDvar = "scr_" + level.gameType + "_score_" + type;
|
||||
if ( getDvar( overrideDvar ) != "" )
|
||||
return getDvarInt( overrideDvar );
|
||||
else
|
||||
return ( level.scoreInfo[type]["value"] );
|
||||
}
|
||||
|
||||
|
||||
getScoreInfoLabel( type )
|
||||
{
|
||||
return ( level.scoreInfo[type]["label"] );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMinXP( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][2]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoXPAmt( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][3]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoMaxXp( rankId )
|
||||
{
|
||||
return int(level.rankTable[rankId][7]);
|
||||
}
|
||||
|
||||
|
||||
getRankInfoFull( rankId )
|
||||
{
|
||||
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
|
||||
}
|
||||
|
||||
|
||||
getRankInfoIcon( rankId, prestigeId )
|
||||
{
|
||||
return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
|
||||
}
|
||||
|
||||
getRankInfoLevel( rankId )
|
||||
{
|
||||
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
|
||||
}
|
||||
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
/#
|
||||
if ( getDvarInt( "scr_forceSequence" ) )
|
||||
player setPlayerData( "experience", 145499 );
|
||||
#/
|
||||
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
|
||||
if ( player.pers["rankxp"] < 0 ) // paranoid defensive
|
||||
player.pers["rankxp"] = 0;
|
||||
|
||||
rankId = player getRankForXp( player getRankXP() );
|
||||
player.pers[ "rank" ] = rankId;
|
||||
player.pers[ "participation" ] = 0;
|
||||
|
||||
player.xpUpdateTotal = 0;
|
||||
player.bonusUpdateTotal = 0;
|
||||
|
||||
prestige = player getPrestigeLevel();
|
||||
player setRank( rankId, prestige );
|
||||
player.pers["prestige"] = prestige;
|
||||
|
||||
player.postGamePromotion = false;
|
||||
if ( !isDefined( player.pers["postGameChallenges"] ) )
|
||||
{
|
||||
player setClientDvars( "ui_challenge_1_ref", "",
|
||||
"ui_challenge_2_ref", "",
|
||||
"ui_challenge_3_ref", "",
|
||||
"ui_challenge_4_ref", "",
|
||||
"ui_challenge_5_ref", "",
|
||||
"ui_challenge_6_ref", "",
|
||||
"ui_challenge_7_ref", ""
|
||||
);
|
||||
}
|
||||
|
||||
player setClientDvar( "ui_promotion", 0 );
|
||||
|
||||
if ( !isDefined( player.pers["summary"] ) )
|
||||
{
|
||||
player.pers["summary"] = [];
|
||||
player.pers["summary"]["xp"] = 0;
|
||||
player.pers["summary"]["score"] = 0;
|
||||
player.pers["summary"]["challenge"] = 0;
|
||||
player.pers["summary"]["match"] = 0;
|
||||
player.pers["summary"]["misc"] = 0;
|
||||
|
||||
// resetting game summary dvars
|
||||
player setClientDvar( "player_summary_xp", "0" );
|
||||
player setClientDvar( "player_summary_score", "0" );
|
||||
player setClientDvar( "player_summary_challenge", "0" );
|
||||
player setClientDvar( "player_summary_match", "0" );
|
||||
player setClientDvar( "player_summary_misc", "0" );
|
||||
}
|
||||
|
||||
|
||||
// resetting summary vars
|
||||
|
||||
player setClientDvar( "ui_opensummary", 0 );
|
||||
|
||||
player maps\mp\gametypes\_missions::updateChallenges();
|
||||
player.explosiveKills[0] = 0;
|
||||
player.xpGains = [];
|
||||
|
||||
player.hud_scorePopup = newClientHudElem( player );
|
||||
player.hud_scorePopup.horzAlign = "center";
|
||||
player.hud_scorePopup.vertAlign = "middle";
|
||||
player.hud_scorePopup.alignX = "center";
|
||||
player.hud_scorePopup.alignY = "middle";
|
||||
player.hud_scorePopup.x = 0;
|
||||
if ( level.splitScreen )
|
||||
player.hud_scorePopup.y = -40;
|
||||
else
|
||||
player.hud_scorePopup.y = -60;
|
||||
player.hud_scorePopup.font = "hudbig";
|
||||
player.hud_scorePopup.fontscale = 0.75;
|
||||
player.hud_scorePopup.archived = false;
|
||||
player.hud_scorePopup.color = (0.5,0.5,0.5);
|
||||
player.hud_scorePopup.sort = 10000;
|
||||
player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
|
||||
|
||||
player thread fixExploit();
|
||||
player thread onPlayerSpawned();
|
||||
player thread onJoinedTeam();
|
||||
player thread onJoinedSpectators();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedTeam()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_team" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onJoinedSpectators()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill( "joined_spectators" );
|
||||
self thread removeRankHUD();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
self thread doDvars();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
roundUp( floatVal )
|
||||
{
|
||||
if ( int( floatVal ) != floatVal )
|
||||
return int( floatVal+1 );
|
||||
else
|
||||
return int( floatVal );
|
||||
}
|
||||
|
||||
|
||||
giveRankXP( type, value )
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
lootType = "none";
|
||||
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
|
||||
return;
|
||||
else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( value ) )
|
||||
value = getScoreInfoValue( type );
|
||||
|
||||
if ( !isDefined( self.xpGains[type] ) )
|
||||
self.xpGains[type] = 0;
|
||||
|
||||
momentumBonus = 0;
|
||||
gotRestXP = false;
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "shield_damage":
|
||||
value *= self.xpScaler;
|
||||
case "assist":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "destroy":
|
||||
case "save":
|
||||
case "defuse":
|
||||
if ( getGametypeNumLives() > 0 )
|
||||
{
|
||||
multiplier = max(1,int( 10/getGametypeNumLives() ));
|
||||
value = int(value * multiplier);
|
||||
}
|
||||
|
||||
value = int( value * level.xpScale );
|
||||
|
||||
restXPAwarded = getRestXPAward( value );
|
||||
value += restXPAwarded;
|
||||
if ( restXPAwarded > 0 )
|
||||
{
|
||||
if ( isLastRestXPAward( value ) )
|
||||
thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
|
||||
|
||||
gotRestXP = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !gotRestXP )
|
||||
{
|
||||
// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
|
||||
if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
|
||||
self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
|
||||
}
|
||||
|
||||
oldxp = self getRankXP();
|
||||
self.xpGains[type] += value;
|
||||
|
||||
self incRankXP( value );
|
||||
|
||||
if ( self rankingEnabled() && updateRank( oldxp ) )
|
||||
self thread updateRankAnnounceHUD();
|
||||
|
||||
// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
|
||||
self syncXPStat();
|
||||
|
||||
if ( !level.hardcoreMode )
|
||||
{
|
||||
if ( type == "teamkill" )
|
||||
{
|
||||
self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
color = (1,1,0.5);
|
||||
if ( gotRestXP )
|
||||
color = (1,.65,0);
|
||||
self thread scorePopup( value, momentumBonus, color, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
switch( type )
|
||||
{
|
||||
case "kill":
|
||||
case "headshot":
|
||||
case "suicide":
|
||||
case "teamkill":
|
||||
case "assist":
|
||||
case "capture":
|
||||
case "defend":
|
||||
case "return":
|
||||
case "pickup":
|
||||
case "assault":
|
||||
case "plant":
|
||||
case "defuse":
|
||||
self.pers["summary"]["score"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "win":
|
||||
case "loss":
|
||||
case "tie":
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
case "challenge":
|
||||
self.pers["summary"]["challenge"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
|
||||
default:
|
||||
self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward
|
||||
self.pers["summary"]["match"] += value;
|
||||
self.pers["summary"]["xp"] += value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateRank( oldxp )
|
||||
{
|
||||
newRankId = self getRank();
|
||||
if ( newRankId == self.pers["rank"] )
|
||||
return false;
|
||||
|
||||
oldRank = self.pers["rank"];
|
||||
rankId = self.pers["rank"];
|
||||
self.pers["rank"] = newRankId;
|
||||
|
||||
//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );
|
||||
println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
|
||||
|
||||
self setRank( newRankId );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
updateRankAnnounceHUD()
|
||||
{
|
||||
self endon("disconnect");
|
||||
|
||||
self notify("update_rank");
|
||||
self endon("update_rank");
|
||||
|
||||
team = self.pers["team"];
|
||||
if ( !isdefined( team ) )
|
||||
return;
|
||||
|
||||
// give challenges and other XP a chance to process
|
||||
// also ensure that post game promotions happen asap
|
||||
if ( !levelFlag( "game_over" ) )
|
||||
level waittill_notify_or_timeout( "game_over", 0.25 );
|
||||
|
||||
|
||||
newRankName = self getRankInfoFull( self.pers["rank"] );
|
||||
rank_char = level.rankTable[self.pers["rank"]][1];
|
||||
subRank = int(rank_char[rank_char.size-1]);
|
||||
|
||||
thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
|
||||
|
||||
if ( subRank > 1 )
|
||||
return;
|
||||
|
||||
for ( i = 0; i < level.players.size; i++ )
|
||||
{
|
||||
player = level.players[i];
|
||||
playerteam = player.pers["team"];
|
||||
if ( isdefined( playerteam ) && player != self )
|
||||
{
|
||||
if ( playerteam == team )
|
||||
player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
endGameUpdate()
|
||||
{
|
||||
player = self;
|
||||
}
|
||||
|
||||
|
||||
scorePopup( amount, bonus, hudColor, glowAlpha )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "joined_team" );
|
||||
self endon( "joined_spectators" );
|
||||
|
||||
if ( amount == 0 )
|
||||
return;
|
||||
|
||||
self notify( "scorePopup" );
|
||||
self endon( "scorePopup" );
|
||||
|
||||
self.xpUpdateTotal += amount;
|
||||
self.bonusUpdateTotal += bonus;
|
||||
|
||||
wait ( 0.05 );
|
||||
|
||||
if ( self.xpUpdateTotal < 0 )
|
||||
self.hud_scorePopup.label = &"";
|
||||
else
|
||||
self.hud_scorePopup.label = &"MP_PLUS";
|
||||
|
||||
self.hud_scorePopup.color = hudColor;
|
||||
self.hud_scorePopup.glowColor = hudColor;
|
||||
self.hud_scorePopup.glowAlpha = glowAlpha;
|
||||
|
||||
self.hud_scorePopup setValue(self.xpUpdateTotal);
|
||||
self.hud_scorePopup.alpha = 0.85;
|
||||
self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
|
||||
|
||||
increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
|
||||
|
||||
if ( self.bonusUpdateTotal )
|
||||
{
|
||||
while ( self.bonusUpdateTotal > 0 )
|
||||
{
|
||||
self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
|
||||
self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
|
||||
|
||||
self.hud_scorePopup setValue( self.xpUpdateTotal );
|
||||
|
||||
wait ( 0.05 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wait ( 1.0 );
|
||||
}
|
||||
|
||||
self.hud_scorePopup fadeOverTime( 0.75 );
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
|
||||
self.xpUpdateTotal = 0;
|
||||
}
|
||||
|
||||
removeRankHUD()
|
||||
{
|
||||
self.hud_scorePopup.alpha = 0;
|
||||
}
|
||||
|
||||
getRank()
|
||||
{
|
||||
rankXp = self.pers["rankxp"];
|
||||
rankId = self.pers["rank"];
|
||||
|
||||
if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
|
||||
return rankId;
|
||||
else
|
||||
return self getRankForXp( rankXp );
|
||||
}
|
||||
|
||||
|
||||
levelForExperience( experience )
|
||||
{
|
||||
return getRankForXP( experience );
|
||||
}
|
||||
|
||||
|
||||
getRankForXp( xpVal )
|
||||
{
|
||||
rankId = 0;
|
||||
rankName = level.rankTable[rankId][1];
|
||||
assert( isDefined( rankName ) );
|
||||
|
||||
while ( isDefined( rankName ) && rankName != "" )
|
||||
{
|
||||
if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
|
||||
return rankId;
|
||||
|
||||
rankId++;
|
||||
if ( isDefined( level.rankTable[rankId] ) )
|
||||
rankName = level.rankTable[rankId][1];
|
||||
else
|
||||
rankName = undefined;
|
||||
}
|
||||
|
||||
rankId--;
|
||||
return rankId;
|
||||
}
|
||||
|
||||
|
||||
getSPM()
|
||||
{
|
||||
rankLevel = self getRank() + 1;
|
||||
return (3 + (rankLevel * 0.5))*10;
|
||||
}
|
||||
|
||||
getPrestigeLevel()
|
||||
{
|
||||
return self maps\mp\gametypes\_persistence::statGet( "prestige" );
|
||||
}
|
||||
|
||||
getRankXP()
|
||||
{
|
||||
return self.pers["rankxp"];
|
||||
}
|
||||
|
||||
incRankXP( amount )
|
||||
{
|
||||
if ( !self rankingEnabled() )
|
||||
return;
|
||||
|
||||
if ( isDefined( self.isCheater ) )
|
||||
return;
|
||||
|
||||
xp = self getRankXP();
|
||||
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||
|
||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||
newXp = getRankInfoMaxXP( level.maxRank );
|
||||
|
||||
self.pers["rankxp"] = newXp;
|
||||
}
|
||||
|
||||
getRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return 0;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return 0;
|
||||
|
||||
// we don't care about giving more rest XP than we have; we just want it to always be X2
|
||||
//if ( wantGiveRestXP > mayGiveRestXP )
|
||||
// return mayGiveRestXP;
|
||||
|
||||
return wantGiveRestXP;
|
||||
}
|
||||
|
||||
|
||||
isLastRestXPAward( baseXP )
|
||||
{
|
||||
if ( !getdvarint( "scr_restxp_enable" ) )
|
||||
return false;
|
||||
|
||||
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
|
||||
|
||||
wantGiveRestXP = int(baseXP * restXPAwardRate);
|
||||
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
|
||||
|
||||
if ( mayGiveRestXP <= 0 )
|
||||
return false;
|
||||
|
||||
if ( wantGiveRestXP >= mayGiveRestXP )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
syncXPStat()
|
||||
{
|
||||
//if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||
// exitLevel( false );
|
||||
|
||||
xp = self getRankXP();
|
||||
|
||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
゙ミユユ<EFBFBD><EFBFBD>菅嚶逮ィ檮辨忽゚ペュ圉当健゚イ菅<EFBFBD><EFBFBD><EFBFBD>セ<EFBFBD>窓クーサ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>尉鞄許寵禦メ剿答<EFBFBD>恊梯<EFBFBD>ユミ<EFBFBD><EFBFBD>桝幕ラヨ<EFBFBD><EFBFBD><EFBFBD>渚囿棡履ャ璃尹細ン屓寵<EFBFBD><EFBFBD>劒圀撼恃ンヨト<EFBFBD><EFBFBD>忽悚恬址璃尹細ン屓寵<EFBFBD><EFBFBD>劒圀撼恃<EFBFBD>鋪ヨト<EFBFBD><EFBFBD>忽悚恬址璃尹細ン屓寵<EFBFBD><EFBFBD>劒圀撼恃<EFBFBD>囁尨梺壥ヨト<EFBFBD><EFBFBD>忽悚恬址璃尹細ン懸梔囁<EFBFBD>頃叙恃鰹ンヨト<EFBFBD><EFBFBD><EFBFBD>嚔囀゚距忽椦゚髄ッ到<EFBFBD>詐髄霜恚ラヨト<EFBFBD><EFBFBD><EFBFBD><EFBFBD>賊到<EFBFBD>詐髄霜恚ラヨ<EFBFBD><EFBFBD><EFBFBD>剞細トトヨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>答凹那<EFBFBD>幕許涛ラン恊荘囿禦巛モ゚藷梟嚶ヨト<EFBFBD><EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃゚ツ゚霜鮎当囁狭鴨コ答潰藷梟嚶ヨト<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム乱劫セ当<EFBFBD>゚ツ゚ン悁窓嚶ント<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム凹豪セ当<EFBFBD>゚ツ゚ン猪屁答ント<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム<EFBFBD>ツ゚メホヘト<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム<EFBFBD>ツ゚メホヘト<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム椏女槧ツ゚マト<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃ム檮恬哩圀゚ツ゚牛噛ト<EFBFBD><EFBFBD>藷梟嚶ム頼屏屓寵<EFBFBD>劒圀撼恃゚建峡璃尹細ン屓寵<EFBFBD><EFBFBD>劒圀撼恃ンモ゚ヘヒモ゚ヒヌヨト<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鋤梛埆梺椈垰囹屎棡蕃゚究恕キ幕゚ヨ<EFBFBD><EFBFBD><EFBFBD>忽糾国ト<EFBFBD><EFBFBD>
|