Board index DeFRaG How to DeFRaG

Useful Scripts

Users helping users.

Re: Useful Scripts

Postby iT.aB1s » Oct 21st, '14, 12:01 pm

Really nice! Many thanks! :clap:
User avatar
iT.aB1s
 
Posts: 7
Joined: Nov 7th, '13, 9:39 pm

Re: Useful Scripts

Postby Xloctis » Dec 8th, '14, 12:14 pm

Why varmath breaks if i do it 3 times in a row. for example
1) timescale = 1; varmath timescale + 0.1
2) timescale = 1.1; varmath timescale + 0.1
3) timescale = 1.2; varmath timescale + 0.1
4) timescale = 1.29999; varmath timescale + 0.1
Xloctis
 
Posts: 4
Joined: Feb 19th, '12, 11:05 am

Re: Useful Scripts

Postby TittenIgnition » Dec 8th, '14, 11:04 pm

Xloctis wrote:Why varmath breaks if i do it 3 times in a row. for example
1) timescale = 1; varmath timescale + 0.1
2) timescale = 1.1; varmath timescale + 0.1
3) timescale = 1.2; varmath timescale + 0.1
4) timescale = 1.29999; varmath timescale + 0.1

It doesn't handle floats very well, I think it's a Q3 bug that isn't fixable, at least not easily.
wtf i have a signature?
User avatar
TittenIgnition
 
Posts: 454
Joined: Jun 4th, '10, 1:24 am
Location: QuakeNet

Re: Useful Scripts

Postby Le another black niger » Dec 8th, '14, 11:42 pm

this issue is documented
DeFRaG\system\help\varMath.txt
DeFRaG\docs\cmd-[varMath].txt
\? varMath
Due to the way quake3 handles converting strings to floating point numbers internally, some floating point rounding errors can occur. For instance, adding .1 to a variable (say 1) 4 times may result in the following values: 1.1, 1.2, 1.29999, 1.39999


feel free to grab by shiny ts controls, free of this issue ;)
Code: Select all
bind END "timescale 1;displaymessage 300 15 ^2ts^9<-^31^9.0"
bind UPARROW "varmath timescale + 5;varmath user_ts = $timescale + 5;varformat user_ts s ^2ts^9<-^8 2.0f $user_ts;silent varcommand displaymessage 300 15 $user_ts ^&"
bind DOWNARROW "timescale 0.2003;displaymessage 300 15 ^2ts^9<-^30.2"
bind LEFTARROW "varmath timescale - .0999;varmath user_ts = $timescale - .09999;varformat user_ts s ^2ts^9<-^3 0.1f $user_ts;silent varcommand displaymessage 300 15 $user_ts"
bind RIGHTARROW "varmath timescale + .10009999;varmath user_ts = $timescale + .10001;varformat user_ts s ^2ts^9<-^3 0.1f $user_ts;silent varcommand displaymessage 300 15 $user_ts"
Le another black niger
 
Posts: 387
Joined: May 17th, '11, 5:08 pm

Re: Useful Scripts

Postby Xloctis » Dec 9th, '14, 6:48 am

the easiest way i figured out to help keep your demos nice and clean
respawn.cfg
Code: Select all
varjoin user_autoDemoPath <0> AutoRecord/ $chsinfo(115); varcommand df_ar_targetfolder $user_autoDemoPath;

main.cfg
Code: Select all
seta df_script_onRespawn "1"


for the god hell onrespawn executes twicely first at death, second at respawn, Fix plz(please).
Xloctis
 
Posts: 4
Joined: Feb 19th, '12, 11:05 am

Re: Useful Scripts

Postby Le another black niger » Dec 9th, '14, 5:23 pm

Xloctis wrote:Fix plz(please).

wrong thread, it's bugged due to new respawn code
the idea is nice, tho, but realization is not, since folders limit is 63 :mrgreen:

here is my solution, it does something like that:
Code: Select all
defrag\demos\_dfDemos\_\!cpma-str-01[df.cpm]00.16.216(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\_\#rlrun[df.cpm]00.04.416(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\_\#rlrun[df.cpm]00.04.728(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\_\}i{[df.cpm]00.13.296(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\a\a[df.cpm]00.22.688(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\a\a[df.cpm]00.28.864(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\a\a[df.cpm]00.51.552(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\i\inder-speed1[mdf.cpm]00.10.176(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\i\inder-speed1[mdf.cpm]00.10.216(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\i\inder-speed1[mdf.cpm]00.10.304(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\i\inder-speed1[mdf.cpm]00.10.376(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\i\inder-speed1[mdf.cpm]00.13.864(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\k\kpsspaze[mdf.cpm]00.06.480(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\k\kpsspaze[mdf.cpm]00.06.608(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\k\kpsspaze[mdf.cpm]00.06.848(Plyr.Cntry).dm_68
defrag\demos\_dfDemos\z\zjump[df.cpm]00.36.280(Plyr.Cntry).dm_68


defrag\demos\_ctfDemos\_\20kctf1(00-10-984)-cpm(2,Plyr).dm_68
defrag\demos\_ctfDemos\_\20kctf1(00-13-264)-cpm(2,Plyr).dm_68
defrag\demos\_ctfDemos\q\q3ctf1(00-10-584)-cpm(2,Plyr).dm_68
defrag\demos\_ctfDemos\q\q3ctf2(00-11-256)-cpm(2,Plyr).dm_68
defrag\demos\_ctfDemos\q\q3ctf2(00-12-608)-cpm(2,Plyr).dm_68


(sorted in 27 folders, separate folder for ctf)

Code: Select all
con_filter 1
df_script_onJoinTeam 1

+ place this into defrag or baseq3 folder:
You do not have the required permissions to view the files attached to this post.
Last edited by Le another black niger on Dec 12th, '14, 8:35 am, edited 1 time in total.
Le another black niger
 
Posts: 387
Joined: May 17th, '11, 5:08 pm

Re: Useful Scripts

Postby Le another black niger » Dec 16th, '14, 10:41 am

updated server menu script, also added console servers monitor!
not sure about best visual style tho
tip: try opening console during monitor's output
You do not have the required permissions to view the files attached to this post.
Le another black niger
 
Posts: 387
Joined: May 17th, '11, 5:08 pm

Re: Useful Scripts

Postby kairos » Jan 7th, '15, 12:57 am

dunno if I already put this somewhere... the binds/scripts are after the variables
Code: Select all
// this config has all of my most used settings and
// interesting scripts/binds ive come up with over time.
// hopefully others can also find good use for it!

unbindall

// ===========================
// player, graphics, and binds
// ===========================

seta con_notifyx "0"
seta con_timestamp "0"

seta color1 "7"
seta color2 "4"

seta r_customwidth "1400"
seta r_customheight "1000"
seta r_fullscreen "0"
seta r_mode "-1"
seta r_picmip "0"
seta r_gamma "1.7"
seta r_fastsky "0"
seta r_overbrightbits "0"

bind TAB "+scores"
bind ENTER "+button2"
bind ESCAPE "togglemenu"
bind SPACE "+moveup"
bind ' "say ^7=:)?"
bind 1 "weapon 1"
bind 3 "+button2"
bind 6 "weapon 6"
bind 7 "weapon 7"
bind 8 "weapon 8"
bind 9 "weapon 9"
bind ` "toggleconsole"
bind a "+moveleft"
bind b "info 140"
bind c "+attack"
bind d "+moveright"
bind e "weapon 4"
bind f "weapon 8"
bind g "give all"
bind h "noclip"
bind j "savepos"
bind k "kill"
bind l "map_restart 0"
bind m "+moveup"
bind n "+moveup; +attack"
bind p "team s"
bind q "weapon 5"
bind r "weapon 7"
bind s "+back"
bind t "messagemode2"
bind u "messagemode3"
bind v "+button3"
bind w "+forward"
bind x "+moveup"
bind y "messagemode"
bind ~ "toggleconsole"
bind PAUSE "pause"
bind UPARROW "+forward"
bind DOWNARROW "+back"
bind LEFTARROW "+left"
bind RIGHTARROW "+right"
bind ALT "toggle cg_thirdperson"
bind CTRL "+movedown"
bind SHIFT "+speed"
bind DEL "+lookdown"
bind PGDN "+lookdown"
bind PGUP "+lookup"
bind END "centerview"
bind F1 "vote yes"
bind F2 "vote no"
bind F11 "screenshot"
bind F12 "screenshotjpeg"
bind KP_HOME "give speed"
bind KP_UPARROW "give quad damage"
bind KP_PGUP "give battle suit"
bind KP_MINUS "toggle df_hud_cgaz"
bind KP_PLUS "toggle cg_draw2d; toggle cg_drawgun"
bind MOUSE1 "+attack"
bind MWHEELDOWN "weapnext"
bind MWHEELUP "weapprev"

// ================
// defrag variables
// ================

seta df_name "kairos"
seta df_country "neptune"

seta df_ar_speedcapture_format "0"
seta df_ar_format "$map.$-route[$gt.$phys.$-mode]$m.$-s.$-ms($pl.$plc)"
seta df_ar_stopdelay "3000"
seta df_autorecord "1"
seta df_tieOverwrites "1"

seta df_drawCheckpointEvents "1"
seta df_drawCheckpointStats "1"
seta df_drawSpeed "1"
seta df_drawJumpmeters "0"
seta df_drawBesttime "1"

seta df_vote_allow_devmap "1"
seta df_vote_allow_interference "1"
seta df_vote_allow_clientkick "1"
seta df_vote_allow_kick "1"
seta df_vote_allow_mode "1"
seta df_vote_allow_promode "1"
seta df_vote_allow_gametype "1"
seta df_vote_allow_nextmap "1"
seta df_vote_allow_map_restart "1"
seta df_vote_allow_map "1"
seta df_vote_voteDelay "30"
seta df_vote_maxVotes "0"
seta df_vote_passVoteOnRatio ".6"
seta df_vote_allowVotes "1"

seta df_ui_CursorColor "0.50 0.80 1.00 1.00"
seta df_ui_StatusColor "1.00 1.00 1.00 1.00"
seta df_ui_ListbarColor "1.00 0.00 0.00 0.30"
seta df_ui_PulseColor "1.00 1.00 1.00 1.00"
seta df_ui_TextColorHighlight "1.00 1.00 0.00 1.00"
seta df_ui_TextColorDisabled "0.50 0.50 0.50 1.00"
seta df_ui_TextColorBig "1.00 0.00 0.00 1.00"
seta df_ui_TextColorMedium "0.00 0.00 1.00 1.00"
seta df_ui_TextColorValue "1.00 0.00 0.00 1.00"
seta df_ui_TextColorLabel "1.00 1.00 0.00 1.00"
seta df_ui_DisplayCVarName "1"
seta df_ui_CustomMenu "2"
seta df_demos_UICompatibility "0"
seta df_hud_cgaz "0"
seta df_unit "0"

seta df_hud_videocapture_fontjustify "0"
seta df_hud_videocapture_fontshadow "1"
seta df_hud_videocapture_fontcolor "7"
seta df_hud_videocapture_fontsize "16"
seta df_hud_videocapture_y "240"
seta df_hud_videocapture_x "320"
seta df_hud_transparency "0.500"
seta df_hud_fontshadow "1"
seta df_hud_fontcolorRGB ""
seta df_hud_fontcolor "3"
seta df_hud_forceteamcolors "0"
seta df_hud_colorwarning "1"
seta df_hud_colorRGB ""
seta df_hud_color "0"
seta df_hud_3DIcons "0"
seta df_hud "1"

// crosshair stuff
seta df_chs2_Info8 "0"
seta df_chs2_Info7 "3047"
seta df_chs2_Info6 "3023"
seta df_chs2_Info5 "3038"
seta df_chs2_Info4 "3011"
seta df_chs2_Info3 "302"
seta df_chs2_Info2 "301"
seta df_chs2_Info1 "300"
seta df_chs2_ComboSeparator "/"
seta df_chs2_EnableCombos "0"
seta df_chs2_OffsetY "100"
seta df_chs2_OffsetX "-300"
seta df_chs2_DisplayType "1"
seta df_chs2_LabelType "1"
seta df_chs2_LabelColor "7"
seta df_chs2_FontTransparency "1.000"
seta df_chs2_FontColor "7"
seta df_chs2_FontShadow "1"
seta df_chs2_FontSize "8"
seta df_chs2_Draw "1"
seta df_chs1_Info8 "0"
seta df_chs1_Info7 "0"
seta df_chs1_Info6 "0"
seta df_chs1_Info5 "0"
seta df_chs1_Info4 "31"
seta df_chs1_Info3 "30"
seta df_chs1_Info2 ""
seta df_chs1_Info1 "56"
seta df_chs1_ComboSeparator "/"
seta df_chs1_EnableCombos "0"
seta df_chs1_OffsetY "0"
seta df_chs1_OffsetX "0"
seta df_chs1_DisplayType "0"
seta df_chs1_LabelType "0"
seta df_chs1_LabelColor "7"
seta df_chs1_FontTransparency "1.000"
seta df_chs1_FontColor "3"
seta df_chs1_FontShadow "1"
seta df_chs1_FontSize "10"
seta df_chs1_Draw "1"
seta df_chs0_OffsetY "100"
seta df_chs0_OffsetX "0"
seta df_chs0_DisplayType "1"
seta df_chs0_LabelColor "3"
seta df_chs0_FontTransparency "1.000"
seta df_chs0_FontColor "3"
seta df_chs0_FontShadow "1"
seta df_chs0_FontSize "12"
seta df_chs0_Draw "1"
seta df_chs_UsePredicted "1"

// hk's hook thing
seta mdd_hud_draw "1"
seta mdd_hud_opacity "0.5"
seta mdd_hud_ammo_draw "1"
seta mdd_hud_ammo_offsetX "610"
seta mdd_hud_ammo_offsetY "30"
seta mdd_hud_ammo_size "64"
seta mdd_hud_ammo_textColor "7"
seta mdd_hud_jumpDelay_draw "0"
seta mdd_hud_jumpDelay_graphOffsetX "330"
seta mdd_hud_jumpDelay_graphOffsetY "140"
seta mdd_hud_jumpDelay_graphWidth "16"
seta mdd_hud_jumpDelay_graphHeight "300"
seta mdd_hud_jumpDelay_textOffsetX "320"
seta mdd_hud_jumpDelay_textOffsetY "220"
seta mdd_hud_jumpDelay_textSize "16"
seta mdd_hud_jumpDelay_textColor "7"

// this is for use with HK's defrag hook
seta vm_game "2"
seta vm_cgame "0"
seta vm_ui "2"

// ===============
// other variables
// ===============

seta cg_draw2D "1"
seta cg_draw3dIcons "1"
seta cg_drawRewards "1"
seta cg_crosshairSize "12"
seta cg_crosshairHealth "0"
seta cg_crosshairX "0"
seta cg_crosshairY "0"
seta cg_simpleItems "1"
seta cg_railTrailTime "800"

seta sv_floodprotect "0"
seta sv_fps "125"
seta com_sleepfps "125"

seta pmove_fixed "1"
seta g_synchronousClients "0"
seta pmove_msec "8"

seta dl_source "http://ws.q3df.org/getpk3bymapname.php/%m"
seta cl_mapAutoDownload "1"

seta cg_lagometer_y "1"
seta cg_lagometer_x "1"
seta cg_lagometer "1"
seta cg_drawFPS "0"

seta cg_drawDamage "0"
seta com_blood "0"
seta cg_gibs "0"

seta scr_conspeed "999"

// ======================================
// mouse stuff, zoom&+strafe, and grapple
// ======================================

// preliminary settings
seta sensitivity "6"
seta cg_fov "120"
seta cg_zoomfov   "60"

// this block programs the zoom toggling
set zoom2 "-zoom ; sensitivity 6; set kaizoom vstr zoom1"
set zoom1 "+zoom ; sensitivity 3; set kaizoom vstr zoom2"
set kaizoom "vstr zoom1"

// this binds the right mouse button to toggle zoom in and out
// by executing the commands above
bind mouse2 "vstr kaizoom"

// this block of script toggles between
// zooming and using +strafe on mouse 2
set strafe1 "bind mouse2 +strafe ; set kaistrafe vstr strafe2"
set strafe2 "bind mouse2 vstr kaizoom ; set kaistrafe vstr strafe1"
set kaistrafe "vstr strafe1"
bind kp_end "vstr kaistrafe"

// this part allows toggling of mouse1 to use either
// +attack or +button5 (grappling hook!)
set shoot1 "bind mouse1 +attack; set kaishoot vstr shoot2"
set shoot2 "bind mouse1 +button5; set kaishoot vstr shoot1"
set kaishoot "vstr shoot2"
bind mouse1 "+attack"
bind kp_downarrow "vstr kaishoot"

// =======================
// respawn/restart command
// =======================

// block allows the toggling of using the "L" button as
// a "map_restart 0" (instant map_restart) command, or
// a "kill" (instant respawn) command
set killer "kill;wait 32;+attack;wait 16;-attack"
set ff1 "bind l map_restart 0; set kaikill vstr ff2"
set ff2 "bind l vstr killer; set kaikill vstr ff1"
set kaikill "vstr ff2"

// kp_del (period on numpad) toggles the kill/map_restart command
// L is the button that executes the currently toggled command
bind kp_del "vstr kaikill"
bind l "map_restart 0"

// ==========
// miniviewer
// ==========

// binds buttons for miniview
// kp_5 turns it on/off
// kp_left and rightarrow switch players
bind kp_5 "varcycle df_ghosts_miniviewdraw 0 7 0"
bind kp_leftarrow "varmath df_mp_Trackplayernum - 1"
bind kp_rightarrow  "varmath df_mp_Trackplayernum + 1"

// =============
// demo recorder
// =============

// a demo recorder to your demos/tricks/ folder that conjoins:
// mapname[physics]trickname(player.country)[date]
// trickname is set by "/set trick (trick)", default is "null"
bind 4 "stoprecord; varjoin user_demoname <0> tricks/ $mapname [fs. $chsinfo(226) ] $trick ( $chsinfo(118) . $chsinfo(219) ); varcommand record $user_demoname"
bind 5 stoprecord
set trick null

// ==============
// savepos system
// ==============

set saveposname pos1; set postoggle vstr spos1; set posreload vstr pos1

// sets up a savepos system with 5 different positions
set spos1 "set saveposname pos1; echo Position 1; set postoggle vstr spos2; set posreload vstr pos1"
set spos2 "set saveposname pos2; echo Position 2; set postoggle vstr spos3; set posreload vstr pos2"
set spos3 "set saveposname pos3; echo Position 3; set postoggle vstr spos4; set posreload vstr pos3"
set spos4 "set saveposname pos4; echo Position 4; set postoggle vstr spos5; set posreload vstr pos4"
set spos5 "set saveposname pos5; echo Position 5; set postoggle vstr spos1; set posreload vstr pos5"

// kp_pgdn toggles positions
// J saves position
// mouse3 loads position
bind j "savepos"
bind mouse3 "vstr posreload"
set postoggle "vstr spos1"
bind kp_pgdn "vstr postoggle"

// ==================
// togglable zoomfovs
// ==================

// enables toggled zoomfovs, useful for accuracy maps
// default is 60, toggles to 10
set zfov "cg_zoomfov 60; set zfovtog vstr zfov2"
set zfov2 "cg_zoomfov 10; set zfovtog vstr zfov"
set zfovtog "vstr zfov"

// number 2 toggles fov
bind 2 "vstr zfovtog"

// ================
// custom variables
// ================

// custom variables for MP interference, use /vstr int1 or 0
set int1 "cv interference 0"
set int0 "cv interference 3"

// ==================
// gazhud toggle bind
// ==================

// toggles gazhud between strafe only and nothing
set gaz0 "df_hud_cgaz 0; set gazhud vstr gaz9"
set gaz9 "df_hud_cgaz 9; set gazhud vstr gaz0"
set gazhud "vstr gaz9"

bind kp_minus "vstr gazhud"

// ====================================================
// small tutorial that echoes in the console after exec
// ====================================================

echo ===========================================================
echo -------------------------------
echo |         kairos' vq3         |
echo -------------------------------
echo ===========================
echo READ THIS FOR INSTRUCTIONS!
echo ===========================
echo ----------------------------------------------------
echo {ZOOM/+STRAFE TOGGLER}
echo Switch modes: KP_END
echo MODE 1: right click to zoom in and out
echo MODE 2: right click and drag to +strafe
echo ----------------------------------------------------
echo {ATTACK/GRAPPLE TOGGLER}
echo Switch modes: KP_DOWNARROW
echo MODE 1: primary fire
echo MODE 2: grappling hook
echo ----------------------------------------------------
echo {SAVEPOS SYSTEM}
echo You MUST select a savepos position first! (kp_pgdn)
echo KP_PGDN:   toggles savepos positions
echo J:      saves position
echo Mouse3:   reloads position
echo ----------------------------------------------------
echo {DEMO RECORDER}
echo Use /set trick (trick name) before recording a demo!
echo 4: Records demo.
echo 5: Stops demo.
echo ----------------------------------------------------
echo {MINIVIEWER}
echo KP_5: toggles miniview on/off
echo KP_4: previous player
echo KP_6: next player
echo ----------------------------------------------------
echo {CUSTOM VARIABLES}
echo Use /vstr (variable) to execute the command!
echo int1 = "cv interference 0" turns on interaction
echo int0 = "cv interference 3" turns off interaction
echo ----------------------------------------------------
echo ===========================================================

// enjoy
//   -k
kairos
 
Posts: 45
Joined: Oct 30th, '10, 5:26 pm

Re: Useful Scripts

Postby cmc » Sep 13th, '16, 7:48 pm

Lots of good stuff cited in this post. Thought I would add one that has been helpful to me. In playing long maps I often get nervous when being reminded of any signifigant + to my previous best time. To combat this, I disable the checkpoint and timer displays temporarily.

This affects 3 displays:
The bottom-right checkpoint box
The main display when a checkpoint is crossed (with + or - color-coded)
The run timer on the left-hand side.

Code: Select all
bind KP_5 "df_drawcheckpointevents 1; df_drawcheckpointstats 1; df_hud_drawstatus 1; echo spec mode"
bind KP_RIGHTARROW "df_drawcheckpointevents 0; df_drawcheckpointstats 0; df_hud_drawstatus 0; echo serious mode"


I also have binds to toggle the checkpoint displays, if I want to see the actual time of a given checkpoint vs. the offset time.

Code: Select all
bind KP_LEFTARROW "df_checkpoints 2; echo checkpoints now in effective mode"
bind KP_DEL "df_checkpoints 1;echo checkpoints now in offset mode"


These are probably not useful to many people; but considering how long it took me to work out these cvars, I thought it was worth posting.
cmc
 
Posts: 13
Joined: Dec 11th, '13, 10:17 pm

Re: Useful Scripts

Postby nLxajA » Sep 13th, '16, 8:08 pm

cmc wrote:Lots of good stuff cited in this post. Thought I would add one that has been helpful to me. In playing long maps I often get nervous when being reminded of any signifigant + to my previous best time. To combat this, I disable the checkpoint and timer displays temporarily.

I have the same problem with nervous :D and have nearly the same solution:
Code: Select all
bind kp_pgup vstr zm_1

seta zm_1 "cg_nochatbeep 1;df_hud_scoreboard_showSpectators 0;cg_lagometer 0;cg_drawcrosshairNames 0;df_mp_nodrawradius 10000;df_drawCheckpointStats 0;df_drawCheckpointEvents 0;echo ^7zadrot mode ^1ON;r_gamma 0.5;wait 30;r_gamma 0.6;wait 30;r_gamma 0.7;wait 30;r_gamma 0.8;wait 30;r_gamma 0.9;wait 30;r_gamma 1;con_notifytime -1;bind kp_pgup vstr zm_2"

seta zm_2 "cg_nochatbeep 0;con_notifytime 5;df_hud_scoreboard_showSpectators 1;cg_lagometer 1;cg_drawcrosshairNames 1;df_mp_nodrawradius 200;df_drawCheckpointStats 1;df_drawCheckpointEvents 1;echo ^7zadrot mode ^9OFF;bind kp_pgup vstr zm_1"
Clean Quake3 (1.32c) with installed defrag 1.91.25 & dfengine 1.08 + distributives windows/linux versions ioquake3, iodfengine, dfengine and defrag included ("xFiles" folder): cloud.mail.ru | yandex.disk.ru.
All defrag maps repack! <- very useful! Highly recommended!
User avatar
nLxajA
 
Posts: 90
Joined: Oct 18th, '09, 10:12 pm
Location: Russia, Voronezh

PreviousNext

cron