CS2: การตั้งค่าเซิร์ฟเวอร์
บทนำ
เซิร์ฟเวอร์เกม Counter-Strike สามารถตั้งค่าได้หลากหลาย การตั้งค่าพื้นฐานสามารถทำได้ผ่านไฟล์คอนฟิก server.cfg และผ่านหน้าการตั้งค่าในเว็บอินเทอร์เฟซ การตั้งค่าขั้นสูงจะทำผ่านไฟล์คอนฟิกโหมดเกม เช่น gamemode_competitive.cfg, gamemode_custom.cfg, gamemode_casual.cfg, gamemode_cooperative.cfg และอื่นๆ
ในหน้าการตั้งค่าคุณสามารถเลือกโหมดเกมที่ต้องการใช้ คำสั่งของคอนฟิกนี้จะถูกโหลดตามนั้น ซึ่งสามารถจัดการได้ทั้งผ่านการบริหารเซิร์ฟเวอร์เกม หรือแก้ไขด้วยตัวเองผ่าน FTP ที่ gXXXXXX/cs2/game/csgo/cfg/
การตั้งค่า
การตั้งค่าผ่านอินเทอร์เฟซ (Settings)
ที่หน้าการตั้งค่าคุณสามารถปรับแต่งการตั้งค่าพื้นฐานสำหรับโทเค็น GSL, ประเภทเกม/โหมดเกม, กลุ่มแมพ และอื่นๆ
โทเค็น GSL
Gameserver Login Tokens (GSLTs) คือกระบวนการที่ Steam ใช้เป็นมาตรการป้องกัน เพื่อรันเซิร์ฟเวอร์เกมของบางเกมใน Steam (ส่วนใหญ่เป็นเกมใน Source engine) จำเป็นต้องสร้างโทเค็น รายละเอียดเพิ่มเติมดูได้ที่นี่:
ประเภทเกม
มีโหมดเกมต่างๆ ให้เลือก ด้านล่างนี้คือรายการตัวเลือกทั้งหมด:
- Classic Casual
- Classic Competitive
- Deathmatch
- Wingman
กลุ่มแมพ
กลุ่มแมพคือกลุ่มของแมพที่โดยปกติจะตรงกับหมวดหมู่หนึ่งๆ โดยดีฟอลต์จะมี mg_active, mg_allclassic ให้เลือก คุณสามารถสร้างกลุ่มแมพของตัวเองได้ ซึ่งต้องเพิ่มเข้าไปในไฟล์ gamemodes_server.txt โครงสร้างของกลุ่มแมพแบบนี้ง่ายและหน้าตาแบบนี้:
{
"mg_meine_mapgroup"
{
"name" "mg_meine_mapgroup"
"maps"
{
"de_map1" ""
"de_map2" ""
"de_map3" ""
"de_map4" ""
}
}
}
แมพเริ่มต้น
แมพเริ่มต้นใช้กำหนดว่าแมพไหนจะถูกโหลดตอนเริ่มต้นเซิร์ฟเวอร์ สำคัญมากที่ชื่อแมพต้องเขียนให้ครบถ้วนและถูกต้อง ไม่ต้องใส่นามสกุลไฟล์
Pingboost
Pingboost คือวิธีการปรับเปลี่ยนความรู้สึกของเกมด้วยวิธีต่างๆ เพื่อให้ได้พิงต่ำที่สุดเท่าที่จะเป็นไปได้
การตั้งค่าผ่าน server.cfg
ในไฟล์ server.cfg คุณสามารถเปลี่ยนการตั้งค่าชื่อเซิร์ฟเวอร์ รหัสผ่าน rcon และรหัสผ่านเซิร์ฟเวอร์ได้
hostname
ชื่อโฮสต์กำหนดชื่อของเซิร์ฟเวอร์ ชื่อนี้จะแสดงในรายการเซิร์ฟเวอร์และในสกอร์บอร์ด
rcon_password
รหัสผ่าน rcon จำเป็นสำหรับการสั่งงานเซิร์ฟเวอร์ผ่านเกมหรือเครื่องมือ Rcon อย่าง HLSW ใช้คำสั่งดังนี้:
rcon_password YourPassword
rcon command // เช่น: rcon changelevel de_dust2
sv_password
ถ้าคุณต้องการใช้เซิร์ฟเวอร์แบบส่วนตัว หรือให้เฉพาะคนบางกลุ่มเข้าถึงได้ คุณสามารถตั้งรหัสผ่านเซิร์ฟเวอร์ เมื่อเชื่อมต่อจะต้องใส่รหัสผ่านนี้
sv_cheats
คำสั่งบางอย่างถูกป้องกันและใช้ได้เฉพาะเมื่อเปิดใช้งานโหมดโกง คำสั่งนี้เปิดหรือปิดได้โดยใช้ค่า 0 (ปิด) หรือ 1 (เปิด) คำสั่งที่ถูกป้องกัน เช่น:
- god, sv_infinite_ammo, noclip, r_drawothermodels 2, mat_wireframe 2, enable_skeleton_draw 1, mat_fullbright 3 และอื่นๆ
การตั้งค่าเฉพาะโหมดเกม
ตามที่อธิบายไว้ตอนต้น คุณสามารถกำหนดโหมดเกม/ประเภทเกมที่ต้องการใช้ในหน้าการตั้งค่าของอินเทอร์เฟซ หลังจากนั้นต้องปรับแต่งการตั้งค่าและแก้ไขไฟล์คอนฟิกที่เกี่ยวข้อง ในไฟล์คอนฟิกโหมดเกมคุณสามารถปรับเปลี่ยนรายละเอียดการเล่น พฤติกรรมบอท ฯลฯ ได้
คำสั่งบอท
bot_chatter คำสั่งนี้กำหนดว่าบอทจะพูดอะไรในเกม ตั้งค่าได้เป็น off, radio, minimal หรือ normal
bot_difficulty คำสั่งนี้กำหนดความยากของบอท ค่าที่ตั้งได้มี:
- 0 - ง่าย
- 1 - ปกติ
- 2 - ยาก
- 3 - เชี่ยวชาญ
bot_quota คำสั่งนี้กำหนดจำนวนบอทสูงสุดที่เซิร์ฟเวอร์จะมี ค่าเริ่มต้นคือ 10
bot_quota_mode คำสั่งนี้กำหนดโหมดควบคุมจำนวนบอท ตัวเลือกมี: normal, fill และ match โดย
- normal คือพฤติกรรมปกติ
- fill เติมบอทจนเต็มจำนวนที่ตั้งไว้ใน "bot_quota"
- match เติมบอทให้เต็มช่องผู้เล่น เช่น ถ้ามีผู้เล่น 3 คนและตั้งบอทไว้ 10 ตัว จะใช้บอทแค่ 7 ตัว
คำสั่งเงิน
cash_player_bomb_defused คำสั่งนี้กำหนดจำนวนเงินที่ผู้เล่นได้รับเมื่อกู้ระเบิดสำเร็จ ไม่สามารถตั้งเกินจำนวนเงินสูงสุดที่เซิร์ฟเวอร์กำหนดได้
cash_player_bomb_planted คำสั่งนี้กำหนดจำนวนเงินที่ผู้เล่นได้รับเมื่อวางระเบิด
cash_player_damage_hostage คำสั่งนี้กำหนดจำนวนเงินที่ถูกหักหรือได้รับเมื่อทำร้ายตัวประกัน ค่าเริ่มต้นคือหัก $30 ทุกครั้งที่ตัวประกันได้รับบาดเจ็บ
cash_player_interact_with_hostage คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อมีปฏิสัมพันธ์กับตัวประกัน
cash_player_killed_enemy_default คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อฆ่าศัตรูด้วยอาวุธปกติ
cash_player_killed_enemy_factor คำสั่งนี้กำหนดจำนวนเงินที่ได้รับเมื่อฆ่าศัตรูด้วยอาวุธหลัก (ปืนพกมาตรฐาน ปืนไรเฟิลหลัก เช่น AK/M4 ฯลฯ)
cash_player_killed_hostage คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อฆ่าตัวประกัน
cash_player_killed_teammate คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อฆ่าทีมเมท
cash_player_rescued_hostage คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อช่วยตัวประกันในโหมด Hostage
cash_team_elimination_bomb_map คำสั่งนี้กำหนดจำนวนเงินที่สมาชิกทีมแต่ละคนได้รับเมื่อฆ่าศัตรูครบ 5 คนในแมพวางระเบิด เช่น Mirage หรือ Dust II
cash_team_elimination_hostage_map_t คำสั่งนี้กำหนดจำนวนเงินที่ผู้ก่อการร้ายแต่ละคนได้รับเมื่อชนะรอบในแมพตัวประกันด้วยการกำจัดศัตรู
cash_team_elimination_hostage_map_ct คำสั่งนี้กำหนดจำนวนเงินที่สมาชิกทีม CT ได้รับเมื่อกำจัดผู้ก่อการร้ายครบ 5 คนในแมพตัวประกัน
cash_team_hostage_alive คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียถ้าตัวประกันรอดชีวิตในรอบนั้น
cash_team_hostage_interaction คำสั่งนี้กำหนดจำนวนเงินที่ได้รับหรือเสียเมื่อผู้เล่นมีปฏิสัมพันธ์กับตัวประกัน
cash_team_loser_bonus คำสั่งนี้กำหนดเงินเริ่มต้นที่ทีมได้รับเมื่อแพ้รอบ เงินนี้จะเพิ่มขึ้นทีละขั้นตามคำสั่งแยกต่างหาก
cash_team_loser_bonus_consecutive_rounds คำสั่งนี้กำหนดจำนวนเงินที่เพิ่มขึ้นสำหรับการแพ้ต่อเนื่อง เช่น ถ้าค่านี้ตั้งไว้ที่ $500 (ค่าเริ่มต้น) หมายความว่าทุกครั้งที่แพ้รอบติดต่อกัน ทีมที่แพ้จะได้รับเงินเพิ่มขึ้น $500 จากรอบก่อนหน้า สูงสุด 5 รอบติดต่อกัน
cash_team_planted_bomb_but_defused คำสั่งนี้กำหนดจำนวนเงินที่ทีมผู้ก่อการร้ายได้รับเมื่อวางระเบิดแต่ถูกกู้ได้สำเร็จ ซึ่งจะ ทับซ้อนกับโบนัสแพ้รอบ ค่าเริ่มต้นคือ $800
cash_team_rescued_hostage คำสั่งนี้กำหนดจำนวนเงินที่ ทั้งทีม ได้รับเมื่อผู้เล่นคนหนึ่งช่วยตัวประกันได้
cash_team_terrorist_win_bomb คำสั่งนี้กำหนดจำนวนเงินที่ผู้เล่นแต่ละคนในทีมผู้ก่อการร้ายได้รับเมื่อชนะรอบด้วยการทำให้ระเบิดระเบิด
cash_team_win_by_defusing_bomb คำสั่งนี้กำหนดจำนวนเงินที่ทีม CT ได้รับเมื่อชนะรอบด้วยการกู้ระเบิด
cash_team_win_by_hostage_rescue คำสั่งโกงนี้กำหนดจำนวนเงินที่สมาชิกทีมได้รับเมื่อชนะรอบด้วยการช่วยตัวประกัน
cash_team_win_by_time_running_out_hostage คำสั่งนี้กำหนดจำนวนเงินที่ทีมปกป้องตัวประกันได้รับเมื่อชนะรอบโดยไม่ให้ตัวประกันถูกช่วยภายในเวลาที่กำหนด
cash_team_win_by_time_running_out_bomb คำสั่งนี้กำหนดจำนวนเงินที่ทีม CT ได้รับเมื่อชนะรอบเพราะเวลาหมด โดยที่ผู้ก่อการร้ายไม่วางระเบิดหรือกำจัด CT ครบตามเวลาที่กำหนด
คำสั่งการเล่นเกม
mp_afterroundmoney คำสั่งนี้กำหนดจำนวนเงินที่ผู้เล่นแต่ละคนในแต่ละทีมได้รับหลังจบรอบ ไม่ว่าจะชนะหรือแพ้ ค่าเริ่มต้นคือ 0 (โบนัสชนะ/แพ้ตั้งด้วยคำสั่งอื่น)
mp_buytime คำสั่งนี้กำหนดเวลาที่ผู้เล่นมีเพื่อซื้ออุปกรณ์หลังเริ่มรอบ (วินาที)
mp_buy_anywhere คำสั่งนี้กำหนดว่าผู้เล่นสามารถเข้าถึงเมนูซื้อของนอกโซนซื้อได้หรือไม่ โดยเวลาซื้อยังคงใช้ตามที่ตั้งไว้
mp_death_drop_defuser คำสั่งนี้กำหนดว่าชุดกู้ระเบิดจะถูกปล่อยเมื่อผู้เล่นตายหรือไม่
mp_death_drop_grenade คำสั่งนี้กำหนดว่าระเบิดชนิดไหน (ถ้ามี) จะถูกปล่อยเมื่อผู้เล่นถูกฆ่า:
- ค่า: 0 - ไม่ปล่อยระเบิดเมื่อเสียชีวิต
- ค่า: 1 - ปล่อยระเบิดที่มีมูลค่าสูงสุดเมื่อเสียชีวิต
mp_death_drop_gun คำสั่งนี้กำหนดว่าอาวุธใดจะถูกปล่อยเมื่อผู้เล่นถูกฆ่า ค่าเริ่มต้นคือ 1 (อาวุธที่ดีที่สุด) เลือกได้ดังนี้:
- ค่า: 0 - ไม่ปล่อยอาวุธเมื่อเสียชีวิต
- ค่า: 1 - ปล่อยอาวุธที่ดีที่สุดเมื่อเสียชีวิต
- ค่า: 2 - ถ้ามีอาวุธในมือผู้เล่นตอนตาย ปล่อยอาวุธนั้น ถ้าไม่มี ปล่อยอาวุธที่มีมูลค่าสูงสุด
mp_defuser_allocation คำสั่งนี้กำหนดว่าผู้เล่นจะได้รับชุดกู้ระเบิดฟรีตอนเริ่มรอบหรือไม่ และใครจะได้รับ:
- ค่า: 1 - ไม่มีชุดกู้ระเบิดฟรี
- ค่า: 2 - ผู้เล่นสุ่มได้รับชุดกู้ระเบิด
- ค่า: 3 - ผู้เล่นทุกคนได้รับชุดกู้ระเบิด
mp_force_pick_time
คำสั่งนี้กำหนดเวลาที่ผู้เล่นมี (วินาที) ในการเลือกทีม หลังจากนั้นจะเลือกทีมให้อัตโนมัติ ค่าเริ่มต้นคือ 15 วินาที
mp_forcecamera
คำสั่งนี้กำหนดขอบเขตที่ผู้ชมมี (เช่น ผู้เล่นที่ตายสามารถดูใครได้บ้าง) ดูรายละเอียดขอบเขตได้ดังนี้:
- ค่า: 0 - ผู้เล่นที่ตายดูผู้เล่นทุกคนได้
- ค่า: 1 - ผู้เล่นที่ตายดูทีมเมทได้เท่านั้น
- ค่า: 2 - หน้าจอจะเป็นสีดำจนกว่าจะเริ่มรอบใหม่
mp_free_armor
คำสั่งนี้กำหนดว่าผู้เล่นจะได้รับเกราะและหมวกฟรีตอนเริ่มรอบหรือไม่:
- ค่า: 0 - ปิด
- ค่า: 1 - เปิด
mp_freezetime
คำสั่งนี้กำหนดเวลาที่ผู้เล่นถูกแช่แข็งตอนเริ่มรอบ เพื่อให้ซื้อของและวางแผน ค่าเริ่มต้นคือ 15 วินาที
mp_friendlyfire
คำสั่งนี้กำหนดว่าเปิดหรือปิดการยิงเพื่อนร่วมทีม เมื่อเปิด ผู้เล่นสามารถทำความเสียหายกับทีมเมทได้ ค่าเริ่มต้นขึ้นกับโหมดเกม ในโหมดแข่งขันเปิดใช้งาน แต่ในโหมด Casual จะปิด
mp_win_panel_display_time
คำสั่งนี้กำหนดเวลาที่สกอร์บอร์ดจะแสดงระหว่างรอบ (วินาที) ค่าเริ่มต้นคือ 3 วินาที
mp_respawn_immunitytime
คำสั่งนี้กำหนดเวลาที่ผู้เล่นได้รับภูมิคุ้มกันหลังเกิดใหม่ ใช้ในโหมด Deathmatch
mp_halftime
คำสั่งนี้กำหนดว่าจะสลับทีมตอนพักครึ่งหรือไม่ ค่าเริ่มต้นคือ 1
mp_maxmoney
คำสั่งนี้กำหนดจำนวนเงินสูงสุดที่ผู้เล่นสามารถมีได้
mp_maxrounds
คำสั่งนี้กำหนดจำนวนรอบสูงสุดที่เซิร์ฟเวอร์จะเล่น
mp_roundtime
คำสั่งนี้กำหนดเวลาสูงสุดของรอบ (นาที) ก่อนจะตัดสินผลชนะ/แพ้ ถ้ารอบหมดเวลาจะชนะโดยทีม CT วินาทีระบุเป็นเลขทศนิยม เช่น 1.92 = 1 นาที 55 วินาที
mp_solid_teammates
คำสั่งนี้กำหนดว่าผู้เล่นจะชนกับทีมเมทได้หรือไม่:
- ค่า: 0 - ปิดการชน
- ค่า: 1 - เปิดการชน
mp_startmoney
คำสั่งนี้กำหนดจำนวนเงินที่ผู้เล่นได้รับตอนเริ่มครึ่งแรก ค่าเริ่มต้นคือ $800
mp_timelimit
คำสั่งนี้กำหนดเวลาสูงสุดของเกมแต่ละแมตช์ (นาที) ค่าเริ่มต้นคือปิด (ตั้งเป็น 0)
mp_warmuptime
คำสั่งนี้กำหนดเวลาช่วงวอร์มอัพก่อนเกมจริงเริ่ม (วินาที)
sv_allow_votes
คำสั่งนี้กำหนดว่าจะอนุญาตให้โหวต (เช่น โหวตขอเวลาหยุด) หรือไม่:
- ค่า: 0 - ปิด
- ค่า: 1 - เปิด
sv_infinite_ammo
คำสั่งนี้กำหนดว่าผู้เล่นจะมีลูกกระสุนไม่จำกัดหรือไม่:
- ค่า: 1 - กระสุนไม่จำกัด ยิงได้โดยไม่ต้องรีโหลด
- ค่า: 2 - กระสุนไม่จำกัดแต่ต้องรีโหลดเมื่อแม็กกาซีนหมด
ammo_grenade_limit_flashbang
คำสั่งนี้กำหนดจำนวนระเบิดแฟลชที่ผู้เล่นสามารถถือได้
ammo_grenade_limit_total
คำสั่งนี้กำหนดจำนวนระเบิดทั้งหมดที่ผู้เล่นสามารถถือได้