// ================== // MULTIPLAYER MENU // ================== menu multiplayer { // ================== // don't render // ================== zone render { invis true } // ================== // background // ================== pic back_ul { image menu/options_ul pos "0 0" } pic back_ur { image menu/options_ur pos "512 0" } pic back_ll { image menu/options_ll pos "0 512" } pic back_lr { image menu/options_lr pos "512 512" } // ================== // buttons // ================== pic button_join { pos "80 220" click { cmd "mn_pop;mn_push mp_serverbrowser;" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_join color "0 0.5 0 1" *button_join texl "0 0" *button_join texh "256 64" } in { *string_join color "1 1 1 1" *button_join texl "0 64" *button_join texh "256 128" } } string string_join { font f_menubig color "0 0.5 0 1" string "_Join" pos "208 252" align cc } pic button_create { pos "80 290" click { cmd "mn_pop;mn_push mp_create_server;" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_create color "0 0.5 0 1" *button_create texl "0 0" *button_create texh "256 64" } in { *string_create color "1 1 1 1" *button_create texl "0 64" *button_create texh "256 128" } } string string_create { font f_menubig color "0 0.5 0 1" string "_Create" pos "208 322" align cc } pic button_team { pos "80 360" click { cmd "mn_pop;mn_push mp_team;" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_team color "0 0.5 0 1" *button_team texl "0 0" *button_team texh "256 64" } in { *string_team color "1 1 1 1" *button_team texl "0 64" *button_team texh "256 128" } } string string_team { font f_menubig color "0 0.5 0 1" string "_Team" pos "208 392" align cc } pic button_exit { pos "80 450" click { cmd "mn_escpop 5; mn_pop esc;" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_exit color "0 0.5 0 1" *button_exit texl "0 0" *button_exit texh "256 64" } in { *string_exit color "1 1 1 1" *button_exit texl "0 64" *button_exit texh "256 128" } } string string_exit { font f_menubig color "0 0.5 0 1" string "_Back" pos "208 482" align cc } func init { cmd "mn_escpop 5;mn_push mp_serverbrowser;maxclients 2;" } } // ================== // MULTIPLAYER TEAM MENU // ================== menu mp_team { // ================== // slots // ================== func teamslotclear { *slot0 image menu/save_slot *slot1 image menu/save_slot *slot2 image menu/save_slot *slot3 image menu/save_slot *slot4 image menu/save_slot *slot5 image menu/save_slot *slot6 image menu/save_slot *slot7 image menu/save_slot } func teamslot0 { teamslotclear *slot0 image menu/save_slota cmd "mn_slot 0" } func teamslot1 { teamslotclear *slot1 image menu/save_slota cmd "mn_slot 1" } func teamslot2 { teamslotclear *slot2 image menu/save_slota cmd "mn_slot 2" } func teamslot3 { teamslotclear *slot3 image menu/save_slota cmd "mn_slot 3" } func teamslot4 { teamslotclear *slot4 image menu/save_slota cmd "mn_slot 4" } func teamslot5 { teamslotclear *slot5 image menu/save_slota cmd "mn_slot 5" } func teamslot6 { teamslotclear *slot6 image menu/save_slota cmd "mn_slot 6" } func teamslot7 { teamslotclear *slot7 image menu/save_slota cmd "mn_slot 7" } pic slot0 { image menu/save_slot pos "500 130" mousefx true click { teamslot0 } } pic slot1 { image menu/save_slot pos "500 165" mousefx true click { teamslot1 } } pic slot2 { image menu/save_slot pos "500 200" mousefx true click { teamslot2 } } pic slot3 { image menu/save_slot pos "500 235" mousefx true click { teamslot3 } } pic slot4 { image menu/save_slot pos "500 270" mousefx true click { teamslot4 } } pic slot5 { image menu/save_slot pos "500 305" mousefx true click { teamslot5 } } pic slot6 { image menu/save_slot pos "500 340" mousefx true click { teamslot6 } } pic slot7 { image menu/save_slot pos "500 375" mousefx true click { teamslot7 } } string txt_slot0 { font "f_verysmall" string "*cvar mn_slot0" pos "510 140" size "240 11" color "0 .78 0 1" } string txt_slot1 { font "f_verysmall" string "*cvar mn_slot1" pos "510 175" size "240 11" color "0 .78 0 1" } string txt_slot2 { font "f_verysmall" string "*cvar mn_slot2" pos "510 210" size "240 11" color "0 .78 0 1" } string txt_slot3 { font "f_verysmall" string "*cvar mn_slot3" pos "510 245" size "240 11" color "0 .78 0 1" } string txt_slot4 { font "f_verysmall" string "*cvar mn_slot4" pos "510 280" size "240 11" color "0 .78 0 1" } string txt_slot5 { font "f_verysmall" string "*cvar mn_slot5" pos "510 315" size "240 11" color "0 .78 0 1" } string txt_slot6 { font "f_verysmall" string "*cvar mn_slot6" pos "510 350" size "240 11" color "0 .78 0 1" } string txt_slot7 { font "f_verysmall" string "*cvar mn_slot7" pos "510 385" size "240 11" color "0 .78 0 1" } pic button_load { image menu/multi_buttons2 pos "780 130" tooltip "_Load team from current selected slot" texl "0 0" texh "128 64" out { *string_load color "0 0.5 0 1" *button_load texl "0 0" *button_load texh "128 64" } in { *string_load color "1 1 1 1" *button_load texl "0 64" *button_load texh "128 128" } click { cmd "loadteamslot;" } } string string_load { font f_menusmall color "0 0.5 0 1" string "_Load" pos "844 145" align uc } pic button_save { image menu/multi_buttons2 pos "780 200" tooltip "_Save team to current selected slot" texl "0 0" texh "128 64" out { *string_save color "0 0.5 0 1" *button_save texl "0 0" *button_save texh "128 64" } in { *string_save color "1 1 1 1" *button_save texl "0 64" *button_save texh "128 128" } click { cmd "saveteamslot;team_comments;" } } string string_save { font f_menusmall color "0 0.5 0 1" string "_Save" pos "844 215" align uc } // ================== // current team // ================== string current_team { string "_Current Team" pos "500 450" font f_big } pic button_edit { image menu/multi_buttons2 pos "500 490" tooltip "_Edit your team after loading" texl "0 0" texh "128 64" out { *string_edit color "0 0.5 0 1" *button_edit texl "0 0" *button_edit texh "128 64" } in { *string_edit color "1 1 1 1" *button_edit texl "0 64" *button_edit texh "128 128" } click { cmd "mn_push team;" } } string string_edit { font f_menusmall color "0 0.5 0 1" string "_Edit" pos "564 505" align uc } pic button_new { image menu/multi_buttons2 pos "640 490" tooltip "_Generate a new team" texl "0 0" texh "128 64" out { *string_new color "0 0.5 0 1" *button_new texl "0 0" *button_new texh "128 64" } in { *string_new color "1 1 1 1" *button_new texl "0 64" *button_new texh "128 128" } click { cmd "new_team;" } } string string_new { font f_menusmall color "0 0.5 0 1" string "_New" pos "704 505" align uc } pic button_auto { image menu/multi_buttons2 pos "780 490" tooltip "_Generate a team automatically" texl "0 0" texh "128 64" out { *string_auto color "0 0.5 0 1" *button_auto texl "0 0" *button_auto texh "128 64" } in { *string_auto color "1 1 1 1" *button_auto texl "0 64" *button_auto texh "128 128" } click { cmd "assign_initial 1;" } } string string_auto { font f_menusmall color "0 0.5 0 1" string "_Auto" pos "844 505" align uc } string race_str { string "_Race:" pos "500 570" } string race_value { string "*cvar team" pos "620 570" align ur } pic race_dec { image menu/buttons_small pos "628 572" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modifystring team -1 human:alien;" } } pic race_inc { image menu/buttons_small pos "638 572" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modifystring team +1 human:alien;" } } string current_name { string "_Name" pos "500 620" } pic slot_teamname { image menu/save_slot pos "500 640" mousefx true click { cmd "msgmenu ?mn_teamname" *txt_teamname color "1 1 1 1" *txt_teamname mousefx true } } string txt_teamname { string "*cvar mn_teamname" pos "510 645" color "0 .78 0 1" } confunc mn_teamname_changed { *txt_teamname color "0 .78 0 1" *txt_teamname mousefx false } // ================== // buttons // ================== func init { cmd "set mn_slot 0;team_comments;set team human;" teamslot0 } } // ================== // SERVER INFO // ================== menu serverinfo { zone popup { invis true } pic back_ul { image menu/options_ul pos "0 0" } pic back_ur { image menu/options_ur pos "512 0" } pic back_ll { image menu/options_ll pos "0 512" } pic back_lr { image menu/options_lr pos "512 512" } text server_info { pos "500 200" size "420 550" format "20 200" num 0 } string mapstring { font f_menubig color "1 1 1 1" string "*cvar mapname" pos "500 110" align ul } pic mappic { image "*cvar mn_mappic" pos "800 80" texl "0 0" texh "128 96" } pic button_favorite { pos "80 270" click { cmd "bookmark_add" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_favorite color "0 0.5 0 1" *button_favorite texl "0 0" *button_favorite texh "256 64" } in { *string_favorite color "1 1 1 1" *button_favorite texl "0 64" *button_favorite texh "256 128" } } string string_favorite { font f_menubig color "0 0.5 0 1" string "_Bookmark" pos "208 302" align cc } pic button_connect { pos "80 360" click { cmd "server_connect; music_randomtrack" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_connect color "0 0.5 0 1" *button_connect texl "0 0" *button_connect texh "256 64" } in { *string_connect color "1 1 1 1" *button_connect texl "0 64" *button_connect texh "256 128" } } string string_connect { font f_menubig color "0 0.5 0 1" string "_Connect" pos "208 392" align cc } pic button_back { pos "80 450" click { cmd "mn_pop;" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_back color "0 0.5 0 1" *button_back texl "0 0" *button_back texh "256 64" } in { *string_back color "1 1 1 1" *button_back texl "0 64" *button_back texh "256 128" } } string string_back { font f_menubig color "0 0.5 0 1" string "_Back" pos "208 482" align cc } func init { cmd "mn_escpop 1" } func close { cmd "mn_escpop 3" } } // ================== // JOIN LAN MENU // ================== menu mp_serverbrowser { string status_str { string "_Serverfilter:" pos "620 109" } string status_value { string "*cvar mn_serverliststr" pos "840 109" align ur } pic status_dec { image menu/buttons_small pos "868 109" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modifywrap mn_serverlist -1 0 2;" cmd "mn_translate mn_serverlist mn_serverliststr 0:All,1:Free,2:Playing;" cmd "pingservers refresh;" } } pic status_inc { image menu/buttons_small pos "884 109" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modifywrap mn_serverlist +1 0 2;" cmd "mn_translate mn_serverlist mn_serverliststr 0:All,1:Free,2:Playing;" cmd "pingservers refresh;" } } // ==================== // lan / inet buttons // ==================== pic button_serverbrowser { image menu/multi_buttons3a texh "256 64" texl "0 32" pos "500 70" } string string_serverbrowser { font f_menu color "1 1 1 1" string "_Serverbrowser" pos "588 86" align cc } pic button_bookmarks { image menu/multi_buttons3 click { cmd "mn_escpop 1;" cmd "mn_pop esc;" cmd "mn_push mp_bookmarks;" cmd "mn_escpop 3;" } texh "256 64" texl "0 32" pos "726 70" out { *string_bookmarks color "0 0.5 0 1" *button_bookmarks image menu/multi_buttons3 } in { *string_bookmarks color "1 1 1 1" *button_bookmarks image menu/multi_buttons3a } } string string_bookmarks { font f_menu color "0 0.5 0 1" string "_Bookmarks" pos "814 86" align cc } // servers_click is CL_ServerListClick_f in cl_main.c text servers { pos "500 140" size "420 340" format "20 198" mousefx true border 3 bordercolor "0 0.5 0 1" padding 10 bgcolor "0.3 0.3 0.3 0.4" wheel height "16" num 1 click { } rclick { cmd "pingservers;" } } // ================== // nickname // ================== string current_name { string "_Name:" pos "480 555" } pic slot_name { image menu/save_slot pos "480 575" mousefx true click { cmd "msgmenu ?name" *txt_name color "1 1 1 1" *txt_name mousefx true } } string txt_name { string "*cvar name" pos "490 581" color "0 .78 0 1" } confunc name_changed { *txt_name color "0 .78 0 1" *txt_name mousefx false } // ================== // preferences // ================== pic button_serverbrowser_refresh { image menu/multi_buttons3 click { cmd "pingservers refresh;" } texh "176 64" texl "0 32" pos "726 650" out { *string_refresh color "0 0.5 0 1" *button_serverbrowser_refresh image menu/multi_buttons3 } in { *string_refresh color "1 1 1 1" *button_serverbrowser_refresh image menu/multi_buttons3a } } string string_refresh { font f_menu color "0 0.5 0 1" string "_Refresh" pos "814 666" align cc } // ==================== // lobby // ==================== pic button_inet_lobby { image menu/multi_buttons3 click { cmd "irc_connect; mn_push irc;" } texh "176 64" texl "0 32" pos "500 650" out { *string_bookmarks_lobby color "0 0.5 0 1" *button_inet_lobby image menu/multi_buttons3 } in { *string_bookmarks_lobby color "1 1 1 1" *button_inet_lobby image menu/multi_buttons3a } } string string_bookmarks_lobby { string "_Lobby" pos "588 666" font f_menu color "0 0.5 0 1" align cc } // =================== // connect_to_ip // =================== string current_inet_connect_to_ip { string "_Connect to IP" pos "480 500" } pic slot_inet_connect_to_ip { image menu/save_slot pos "480 520" mousefx false click { cmd "msgmenu ?mn_server_ip" *txt_inet_ip color "1 1 1 1" *txt_inet_ip mousefx true } } string txt_inet_ip { string "*cvar mn_server_ip" pos "490 526" color "0 .78 0 1" } confunc mn_server_ip_changed { *txt_inet_ip color "0 .78 0 1" *txt_inet_ip mousefx false } // ==================== // connect to ip button // ==================== pic button_inet_connect_to_ip { image menu/multi_buttons3 click { cmd "server_info *mn_server_ip;" } texh "176 64" texl "0 32" pos "750 520" out { *string_bookmarks_connect_to_ip color "0 0.5 0 1" *button_inet_connect_to_ip image menu/multi_buttons3 } in { *string_bookmarks_connect_to_ip color "1 1 1 1" *button_inet_connect_to_ip image menu/multi_buttons3a } } string string_bookmarks_connect_to_ip { string "_Connect" pos "838 536" font f_menu color "0 0.5 0 1" align cc } // ==================== // init // ==================== func init { cmd "pingservers;" cmd "mn_translate mn_serverlist mn_serverliststr 0:All,1:Free,2:Playing;" } func event { timeout 60000 cmd "pingservers refresh;" } } // ================== // INTERNET MENU // ================== menu mp_bookmarks { // ==================== // lan / inet buttons // ==================== pic button_serverbrowser { image menu/multi_buttons3 texh "256 64" texl "0 32" pos "500 70" out { *string_serverbrowser color "0 0.5 0 1" *button_serverbrowser image menu/multi_buttons3 } in { *string_serverbrowser color "1 1 1 1" *button_serverbrowser image menu/multi_buttons3a } click { cmd "mn_pop esc; mn_push multiplayer;pingservers;" } } pic button_bookmarks { image menu/multi_buttons3a texh "256 64" texl "0 32" pos "726 70" } string string_serverbrowser { font f_menu color "0 0.5 0 1" string "_Serverbrowser" pos "588 86" align cc } string string_bookmarks { font f_menu color "1 1 1 1" string "_Bookmarks" pos "814 86" align cc } string inet_bookmarks { font f_menubig color "0 0.5 0 1" string "_Bookmarks" pos "700 170" align uc } string adr0 { pos "510 230" string "*cvar adr0" size "300 12" click { cmd "bookmarks_click 0" } } pic resetadr0 { if "adr0" pos "480 230" image menu/del click { cmd "del adr0" } tooltip "_Delete this bookmark" } string adr1 { pos "510 260" string "*cvar adr1" size "300 12" click { cmd "bookmarks_click 1" } } pic resetadr1 { if "adr1" pos "480 260" image menu/del click { cmd "del adr1" } tooltip "_Delete this bookmark" } string adr2 { pos "510 290" string "*cvar adr2" size "300 12" click { cmd "bookmarks_click 2" } } pic resetadr2 { if "adr2" pos "480 290" image menu/del click { cmd "del adr2" } tooltip "_Delete this bookmark" } string adr3 { pos "510 320" string "*cvar adr3" size "300 12" click { cmd "bookmarks_click 3" } } pic resetadr3 { if "adr3" pos "480 320" image menu/del click { cmd "del adr3" } tooltip "_Delete this bookmark" } string adr4 { pos "510 350" string "*cvar adr4" size "300 12" click { cmd "bookmarks_click 4" } } pic resetadr4 { if "adr4" pos "480 350" image menu/del click { cmd "del adr4" } tooltip "_Delete this bookmark" } string adr5 { pos "510 380" string "*cvar adr5" size "300 12" click { cmd "bookmarks_click 5" } } pic resetadr5 { if "adr5" pos "480 380" image menu/del click { cmd "del adr5" } tooltip "_Delete this bookmark" } string adr6 { pos "510 410" string "*cvar adr6" size "300 12" click { cmd "bookmarks_click 6" } } pic resetadr6 { if "adr6" pos "480 410" image menu/del click { cmd "del adr6" } tooltip "_Delete this bookmark" } string adr7 { pos "510 440" string "*cvar adr7" size "300 12" click { cmd "bookmarks_click 7" } } pic resetadr7 { if "adr7" pos "480 440" image menu/del click { cmd "del adr7" } tooltip "_Delete this bookmark" } string adr8 { pos "510 470" string "*cvar adr8" size "300 12" click { cmd "bookmarks_click 8" } } pic resetadr8 { if "adr8" pos "480 470" image menu/del click { cmd "del adr8" } tooltip "_Delete this bookmark" } string adr9 { pos "510 500" string "*cvar adr9" size "300 12" click { cmd "bookmarks_click 9" } } pic resetadr9 { if "adr9" pos "480 500" image menu/del click { cmd "del adr9" } tooltip "_Delete this bookmark" } string adr10 { pos "510 530" string "*cvar adr10" size "300 12" click { cmd "bookmarks_click 10" } } pic resetadr10 { if "adr10" pos "480 530" image menu/del click { cmd "del adr10" } tooltip "_Delete this bookmark" } string adr11 { pos "510 560" string "*cvar adr11" size "300 12" click { cmd "bookmarks_click 11" } } pic resetadr11 { if "adr11" pos "480 560" image menu/del click { cmd "del adr11" } tooltip "_Delete this bookmark" } string adr12 { pos "510 590" string "*cvar adr12" size "300 12" click { cmd "bookmarks_click 12" } } pic resetadr12 { if "adr12" pos "480 590" image menu/del click { cmd "del adr12" } tooltip "_Delete this bookmark" } string adr13 { pos "510 620" string "*cvar adr13" size "300 12" click { cmd "bookmarks_click 13" } } pic resetadr13 { if "adr13" pos "480 620" image menu/del click { cmd "del adr13" } tooltip "_Delete this bookmark" } string adr14 { pos "510 650" string "*cvar adr14" size "300 12" click { cmd "bookmarks_click 14" } } pic resetadr14 { if "adr14" pos "480 650" image menu/del click { cmd "del adr14" } tooltip "_Delete this bookmark" } string adr15 { pos "510 680" string "*cvar adr15" size "300 12" click { cmd "bookmarks_click 15" } } pic resetadr15 { if "adr15" pos "480 680" image menu/del click { cmd "del adr15" } tooltip "_Delete this bookmark" } } // ================== // SERVER MENU // ================== menu mp_create_server { // ===================== // PUBLIC - MASTERSERVER // ===================== string public_str { string "_Make this server public:" pos "500 120" } string public_value { string "*cvar mn_public" pos "840 120" align ur } pic public_dec { tooltip "_Don't make it public via masterserver" image menu/buttons_small pos "868 122" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify public -1 0 1;" cmd "mn_translate public mn_public 0:No,1:Yes;" } } pic public_inc { tooltip "_Publish server address via masterserver" image menu/buttons_small pos "884 122" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify public +1 0 1;" cmd "mn_translate public mn_public 0:No,1:Yes;" } } // =================== // MORALE // =================== string morale_str { string "_Enable morale states:" pos "500 140" } string morale_value { string "*cvar mn_enablemorale" pos "840 140" align ur } pic morale_dec { image menu/buttons_small pos "868 142" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify sv_enablemorale -1 0 1;" cmd "mn_translate sv_enablemorale mn_enablemorale 0:No,1:Yes;" } } pic morale_inc { image menu/buttons_small pos "884 142" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify sv_enablemorale +1 0 1;" cmd "mn_translate sv_enablemorale mn_enablemorale 0:No,1:Yes;" } } // =================== // GAME TYPE // =================== string gametype_str { string "_Gametype:" pos "500 160" } string gametype_value { string "*cvar gametype" pos "840 160" align ur } pic gametype_dec { image menu/buttons_small pos "868 162" texl "0 0" texh "16 16" mousefx true click { cmd "mn_prevgametype;" } } pic gametype_inc { image menu/buttons_small pos "884 162" texl "16 0" texh "32 16" mousefx true click { cmd "mn_nextgametype;" } } // =================== // TEAMPLAY // =================== string server_teamplay_str { string "_Teamplay:" pos "500 180" } string server_teamplay_value { string "*cvar mn_teamplay" pos "840 180" align ur } pic server_teamplay_dec { image menu/buttons_small pos "868 182" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify sv_teamplay -1 0 1;" cmd "mn_translate sv_teamplay mn_teamplay 0:No,1:Yes;" } } pic server_teamplay_inc { image menu/buttons_small pos "884 182" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify sv_teamplay +1 0 1;" cmd "mn_translate sv_teamplay mn_teamplay 0:No,1:Yes;" } } // =================== // MAXCLIENTS // =================== string maxclients_str { string "_Max. clients:" pos "500 200" tooltip "_Sets the max allowed clients to connect" } string maxclients_value { string "*cvar maxclients" pos "840 200" align ur } pic maxclients_dec { image menu/buttons_small pos "868 202" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify maxclients -1 2 16;" } } pic maxclients_inc { image menu/buttons_small pos "884 202" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify maxclients +1 2 16;" } } // =================== // G_MAXPERPLAYER // =================== string maxperplayer_str { string "_Max. soldiers per team:" pos "500 220" tooltip "_Sets the max allowed soldiers per team" } string maxperplayer_value { string "*cvar maxsoldiers" pos "840 220" align ur } pic maxperplayer_dec { image menu/buttons_small pos "868 222" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify maxsoldiers -1 1 8;" } } pic maxperplayer_inc { image menu/buttons_small pos "884 222" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify maxsoldiers +1 1 8;" } } // ===================== // MAXSOLDIER PER PLAYER // ===================== string maxsoldierperplayer_str { string "_Max. soldiers per player:" pos "500 240" tooltip "_Sets the max allowed soldiers per player when in teamplay" } string maxsoldierperplayer_value { string "*cvar maxsoldiersperplayer" pos "840 240" align ur } pic maxsoldierperplayer_dec { image menu/buttons_small pos "868 242" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify maxsoldiersperplayer -1 1 8;" } } pic maxsoldierperplayer_inc { image menu/buttons_small pos "884 242" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify maxsoldiersperplayer +1 1 8;" } } // =================== // MAX PLAYER PER TEAM // max is half of maxclients // =================== string server_maxplayerperteam_str { string "_Max. human players per team:" pos "500 260" } string server_maxplayerperteam_value { string "*cvar maxplayers" pos "840 260" align ur } pic server_maxplayerperteam_dec { image menu/buttons_small pos "868 262" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify maxplayers -1 1 8;" } } pic server_maxplayerperteam_inc { image menu/buttons_small pos "884 262" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify maxplayers +1 1 8;" } } // =================== // AI_NUMACTORS // =================== string ai_numactors_str { string "_Max. AI actors:" pos "500 280" tooltip "_Max AI actors for teamplay mode" } string ai_numactors_value { string "*cvar ai_numactors" pos "840 280" align ur } pic ai_numactors_dec { image menu/buttons_small pos "868 282" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify ai_numactors -1 0 8;" } } pic ai_numactors_inc { image menu/buttons_small pos "884 282" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify ai_numactors +1 0 8;" } } // =================== // AI_AUTOJOIN // =================== string ai_autojoin_str { string "_AI autojoin:" pos "500 300" tooltip "_AI autojoin on free teams" } string ai_autojoin_value { string "*cvar mn_autojoin" pos "840 300" align ur } pic ai_autojoin_dec { image menu/buttons_small pos "868 302" texl "0 0" texh "16 16" mousefx true click { cmd "mn_modify ai_autojoin -1 0 1;" cmd "mn_translate ai_autojoin mn_autojoin 0:No,1:Yes;" } } pic ai_autojoin_inc { image menu/buttons_small pos "884 302" texl "16 0" texh "32 16" mousefx true click { cmd "mn_modify ai_autojoin +1 0 1;" cmd "mn_translate ai_autojoin mn_autojoin 0:No,1:Yes;" } } // =================== // SERVER_PASSWORD // =================== string current_server_pwd { string "_Server-Password:" pos "500 330" } pic slot_server_pwd { image menu/save_slot pos "500 350" mousefx true click { cmd "msgmenu ?password" *txt_server_pwd color "1 1 1 1" *txt_server_pwd mousefx true } } string txt_server_pwd { string "*cvar password" pos "510 355" color "0 .78 0 1" } confunc password_changed { *txt_server_pwd color "0 .78 0 1" *txt_server_pwd mousefx false } // =================== // RCON_PASSWORD // =================== string current_rcon_pwd { string "_RCON-Password:" pos "500 390" } pic slot_rcon_pwd { image menu/save_slot pos "500 410" mousefx true click { cmd "msgmenu ?rcon_password" *txt_rcon_pwd color "1 1 1 1" *txt_rcon_pwd mousefx true } } string txt_rcon_pwd { string "*cvar rcon_password" pos "510 415" color "0 .78 0 1" } confunc rcon_password_changed { *txt_rcon_pwd color "0 .78 0 1" *txt_rcon_pwd mousefx false } // =================== // HOSTNAME // =================== string current_hostname { string "_Hostname:" pos "500 450" } pic slot_hostname { image menu/save_slot pos "500 470" mousefx true click { cmd "msgmenu ?hostname" *txt_hostname color "1 1 1 1" *txt_hostname mousefx true } } string txt_hostname { string "*cvar hostname" pos "510 475" color "0 .78 0 1" } confunc hostname_changed { *txt_hostname color "0 .78 0 1" *txt_hostname mousefx false } // =================== // MAP // =================== string current_map { string "_Map" pos "500 510" } pic slot_map { image menu/save_slot pos "500 530" mousefx true } string txt_mapname { string "*cvar mapname" pos "510 535" color "0 .78 0 1" } pic prev_map { image menu/buttons_small pos "478 538" texl "0 0" texh "16 16" mousefx true click { cmd "mn_prevmap" } } pic next_map { image menu/buttons_small pos "760 538" texl "16 0" texh "32 16" mousefx true click { cmd "mn_nextmap;" } } pic mappic { image "*cvar mn_mappic" pos "800 330" texl "0 0" texh "128 96" click { cmd "mn_nextmap" } rclick { cmd "mn_prevmap" } } pic mappic2 { image "*cvar mn_mappic2" pos "800 430" texl "0 0" texh "128 96" click { cmd "mn_nextmap" } rclick { cmd "mn_prevmap" } } pic mappic3 { image "*cvar mn_mappic3" pos "800 530" texl "0 0" texh "128 96" click { cmd "mn_nextmap" } rclick { cmd "mn_prevmap" } } // ==================== // create_server button // ==================== pic button_server { pos "570 630" click { cmd "mn_startserver *mapname; music_randomtrack" } image menu/button_big texl "0 0" texh "256 64" mousefx true out { *string_server color "0 0.5 0 1" *button_server texl "0 0" *button_server texh "256 64" } in { *string_server color "1 1 1 1" *button_server texl "0 64" *button_server texh "256 128" } } string string_server { pos "698 662" font f_menubig color "0 0.5 0 1" string "_Start server" align cc } confunc mn_servercreate_update { cmd "mn_translate public mn_public 0:No,1:Yes;" cmd "mn_translate sv_teamplay mn_teamplay 0:No,1:Yes;" cmd "mn_translate ai_autojoin mn_autojoin 0:No,1:Yes;" cmd "mn_translate sv_enablemorale mn_enablemorale 0:No,1:Yes;" } // =================== // INIT // =================== func init { cmd "killserver; set maxplayers 8; set sv_roundtimelimit 0" cmd "gametype 2on2; gametype 1on1" cmd "getmaps" cmd "mn_modify ai_autojoin -1 0 1" cmd "mn_modify sv_teamplay -1 0 1" cmd "mn_servercreate_update" } } // ========================== // MULTIPLAYER TEAM SELECTION // ========================== menu multiplayer_selectteam { // ================== // don't render // ================== zone render { invis true } // ================== // background // ================== pic background { image "*cvar mn_mappicbig" pos "0 0" size "1024 768" } pic back_ul { image menu/multiplayer_teamsel pos "256 28" } string teamselection { font f_big color "1 1 1 1" string "_Team selection" pos "512 50" align uc } string info { font f_small color "1 1 1 1" string "_Click the big button in the lower right corner when ready" pos "512 10" align uc } string mapname { font f_small color "1 1 1 1" string "*cvar mapname" pos "512 72" align uc } text team_info { pos "300 100" size "422 320" format "16 60" // bgcolor "1 1 1 0.5" height 20 num 1 } text teamnum_status { pos "300 430" size "422 16" format "16 60" // bgcolor "1 1 1 0.5" num 0 height 1 } string maxplayersperteams_str { string "_Max. players per team" pos "300 460" } string maxplayersperteams_value { string "*cvar mn_maxplayersperteam" pos "550 460" } string maxteams_str { string "_Max. teams for this map" pos "300 480" } string maxteams_value { string "*cvar mn_maxteams" pos "550 480" } string teamnum_str { string "_Team preference:" pos "400 500" } string teamnum_value { string "*cvar teamnum" pos "550 500" align ur } pic teamnum_inc { tooltip "_Next free team" image menu/buttons_small pos "568 502" texl "0 0" texh "16 16" mousefx true click { cmd "teamnum_inc;" } } pic teamnum_dec { tooltip "_Previous free team" image menu/buttons_small pos "584 502" texl "16 0" texh "32 16" mousefx true click { cmd "teamnum_dec;" } } pic button_exit { tooltip "_Finish the teamselection and start the game" image hud/buttons2 mousefx true pos "684 494" texl "0 0" texh "64 37" click { cmd "spawnsoldiers;" } } // update every 2 sec func event { timeout 2000 cmd "mp_selectteam_init;" } pic chat_button { tooltip "_Activate chat" image hud/button_chat2 mousefx true pos "96 580" texl "0 0" texh "64 64" click { cmd "messagesay;" } } text chatscreen { pos "167 580" size "690 160" font "f_verysmall" wheel num "38" height "10" format "16 0" padding 5 bordercolor "0.5 0.5 0.5 1" border 2 bgcolor "0 0.1 0 0.7" } // =================== // INIT // =================== func init { cmd "mp_selectteam_init;" } } // ========================== // MULTIPLAYER WAIT POPUP // ========================== menu multiplayer_wait { zone popup { invis true } pic background { image "*cvar mn_mappicbig" pos "0 0" size "1024 768" } string mapname { font f_small color "1 1 1 1" string "*cvar mapname" pos "512 72" align uc } pic back { image menu/popup pos "256 256" } string title { string "_Please wait" pos "440 280" font f_big } string message { string "_Waiting for other players to join the game" pos "300 340" } string teams_str { string "_Players that must join before starting: " pos "300 370" } string teams_val { string "*cvar sv_maxteams" color "0 0.5 0 1" pos "700 370" } pic bt_force { tooltip "_Start the game even if not all teams have joined" image menu/multi_buttons3 texh "256 64" texl "0 32" pos "560 454" out { *string_force color "0 0.5 0 1" *bt_force image menu/multi_buttons3 } in { *string_force color "1 1 1 1" *bt_force image menu/multi_buttons3a } click { cmd "sv startgame;" } } string string_force { font f_menu color "0 0.5 0 1" string "_Force start" pos "648 470" align cc } func event { timeout 2000 cmd "mp_wait_init" } } // ========================== // SERVER PASSWORD // ========================== menu serverpassword { zone popup { invis true } pic back { image menu/popup pos "256 256" } pic bt_close { image hud/close pos "722 284" click { cmd "mn_pop" } } string title { pos "512 282" align uc string "_Enter server password" } // =================== // PASSWORD // =================== string current_password { string "_Password:" pos "330 320" } pic slot_password { image menu/save_slot pos "330 340" mousefx true click { cmd "msgmenu ?password" *txt_password color "1 1 1 1" *txt_password mousefx true } } string txt_password { string "*cvar password" pos "335 345" color "0 .78 0 1" } confunc password_changed { *txt_password color "0 .78 0 1" *txt_password mousefx false } pic bt_ok { tooltip "_Close this dialogue" image menu/multi_buttons3 texh "256 64" texl "0 32" pos "560 454" out { *string_ok color "0 0.5 0 1" *bt_ok image menu/multi_buttons3 } in { *string_ok color "1 1 1 1" *bt_ok image menu/multi_buttons3a } click { cmd "mn_pop;" } } string string_ok { font f_menu color "0 0.5 0 1" string "_OK" pos "648 470" align cc } } gametype 1on1 { name "_1on1" { sv_teamplay 0 maxclients 2 maxsoldiersperplayer 8 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 1 } } gametype 1on1on1 { name "_1on1on1" { sv_teamplay 0 maxclients 3 maxsoldiersperplayer 8 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 1 } } gametype 2on2 { name "_2on2" { sv_teamplay 1 maxclients 4 maxsoldiersperplayer 4 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 2 } } gametype 2on2on2 { name "_2on2on2" { sv_teamplay 1 maxclients 6 maxsoldiersperplayer 4 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 2 } } gametype 3on3 { name "_3on3" { sv_teamplay 1 maxclients 6 maxsoldiersperplayer 2 maxsoldiers 6 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 3 } } gametype 3on3on3 { name "_3on3on3" { sv_teamplay 1 maxclients 9 maxsoldiersperplayer 2 maxsoldiers 6 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 3 } } gametype 4on4 { name "_4on4" { sv_teamplay 1 maxclients 8 maxsoldiersperplayer 2 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 maxplayers 4 } } gametype 4on4on4 { name "_4on4on4" { sv_teamplay 1 maxclients 12 maxsoldiersperplayer 2 maxsoldiers 8 ai_numactors 0 sv_ai 0 ai_autojoin 0 // maxplayers 4 } } gametype coop2 { name "_Coop 2 players" { sv_teamplay 1 maxclients 2 maxsoldiersperplayer 4 maxsoldiers 8 ai_numactors 8 sv_ai 1 ai_autojoin 0 // maxplayers 2 } } gametype coop3 { name "_Coop 3 players" { sv_teamplay 1 maxclients 3 maxsoldiersperplayer 2 maxsoldiers 6 ai_numactors 6 sv_ai 1 ai_autojoin 0 // maxplayers 3 } } gametype coop4 { name "_Coop 4 players" { sv_teamplay 1 maxclients 4 maxsoldiersperplayer 2 maxsoldiers 8 ai_numactors 8 sv_ai 1 ai_autojoin 0 // maxplayers 4 } }