CSGO: การตั้งค่าเซิร์ฟเวอร์
คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:
(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)
เอกสารนี้ถูกเก็บถาวรแล้ว เอกสารจะถูกเก็บถาวรหากไม่เกี่ยวข้อง ไม่ถูกต้อง หรือไม่ทันสมัยอีกต่อไป สาเหตุที่เก็บถาวรมีดังนี้:
เหตุผล: CS:GO ไม่ได้ให้บริการอย่างต่อเนื่องและไม่ได้รับการพัฒนาอีกต่อไป CS2 คือภาคต่อของ CS:GO เราแนะนำให้เปลี่ยนไปใช้ CS2
บทนำ
เซิร์ฟเวอร์เกม Counter-Strike สามารถตั้งค่าได้อย่างกว้างขวาง การตั้งค่าพื้นฐานสามารถทำได้ผ่านไฟล์ Server.cfg และผ่านหน้าการตั้งค่าในเว็บอินเทอร์เฟซ การตั้งค่าขั้นสูงจะทำผ่านไฟล์คอนฟิกโหมดเกม เช่น gamemode_competitive.cfg, gamemode_custom.cfg, gamemode_casual.cfg, gamemode_cooperative.cfg, gamemode_demolition.cfg เป็นต้น
ในหน้าการตั้งค่าคุณสามารถเลือกโหมดเกมที่ต้องการใช้ คำสั่งในไฟล์คอนฟิกนี้จะถูกโหลดตามนั้น ซึ่งสามารถจัดการได้ทั้งผ่านการบริหารเซิร์ฟเวอร์เกม หรือแก้ไขด้วยตนเองผ่าน FTP ที่ gXXXXXX/csgo/csgo/cfg/
การตั้งค่า
การตั้งค่าผ่านอินเทอร์เฟซ (Settings)
ที่หน้าการตั้งค่าคุณสามารถปรับแต่งการตั้งค่าพื้นฐานสำหรับโทเค็น GSL, ประเภทเกม/โหมดเกม, กลุ่มแมพ, tickrate และอื่น ๆ
GSL Token
Gameserver Login Tokens (GSLTs) คือกระบวนการที่ Steam ใช้เป็นมาตรการป้องกัน เพื่อรันเซิร์ฟเวอร์เกมของเกม Steam บางเกม (ส่วนใหญ่เป็นเกมในเอนจิน Source) จำเป็นต้องสร้างโทเค็น รายละเอียดเพิ่มเติมดูได้ที่นี่:
Gametype
มีโหมดเกมต่าง ๆ ให้เลือก ด้านล่างคือรายการตัวเลือกทั้งหมด:
- Classic Casual
- Classic Competitive
- Arms Race
- Demolition
- Deathmatch
- Wingman
Mapgroup
Mapgroups คือกลุ่มของแมพที่โดยปกติจะสอดคล้องกับหมวดหมู่หนึ่ง ๆ โดยค่าเริ่มต้นจะมี mg_active, mg_armsrace, mg_demolition, mg_allclassic คุณสามารถสร้างกลุ่มของคุณเองได้ ซึ่งต้องเพิ่มเข้าไปในไฟล์ Gamemodes_server.txt โครงสร้างของ mapgroup นั้นง่ายและมีลักษณะดังนี้:
{
"mg_meine_mapgroup"
{
"name" "mg_meine_mapgroup"
"maps"
{
"de_map1" ""
"de_map2" ""
"de_map3" ""
"de_map4" ""
}
}
}
Tickrate
Tickrate ที่ตั้งไว้จะกำหนดความถี่ที่เซิร์ฟเวอร์ส่งตำแหน่งของผู้เล่นคนหนึ่งไปยังผู้เล่นคนอื่น ๆ ยิ่งค่าสูง ประสบการณ์การเล่นจะยิ่งดีขึ้น ค่าที่สามารถตั้งได้คือ: 33, 64, 100 และ 128 (ค่าสูงสุด)
Startmap
แมพเริ่มต้นใช้กำหนดว่าแมพใดจะถูกโหลดในระหว่างกระบวนการเริ่มต้น สำคัญที่ชื่อแมพต้องเขียนให้ครบถ้วนและถูกต้อง ไม่จำเป็นต้องใส่นามสกุลไฟล์
Pingboost
Pingboost คือวิธีการปรับเปลี่ยนความรู้สึกของเกมด้วยวิธีต่าง ๆ เพื่อให้ได้พิงต่ำที่สุดเท่าที่จะเป็นไปได้
การตั้งค่าผ่าน server.cfg
ในไฟล์ server.cfg คุณสามารถเปลี่ยนการตั้งค่าสำหรับชื่อเซิร์ฟเวอร์ รหัสผ่าน rcon และรหัสผ่านเซิร์ฟเวอร์ได้
hostname
hostname คือชื่อของเซิร์ฟเวอร์ ชื่อนี้จะแสดงในรายการเซิร์ฟเวอร์และในสกอร์บอร์ด
rcon_password
rcon_password จำเป็นสำหรับการสั่งคำสั่งเซิร์ฟเวอร์ในเกมหรือผ่านเครื่องมือ 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
คำสั่งนี้กำหนดจำนวนเกรเนดทั้งหมดที่ผู้เล่นสามารถถือได้
การตั้งค่าแบบ Esport-Ready (ESL Configs)
ถ้าคุณต้องการใช้เซิร์ฟเวอร์สำหรับการแข่งขันอีสปอร์ต ควรอัปโหลดคอนฟิกที่ ESL จัดเตรียมไว้ คุณสามารถดาวน์โหลดได้จากเว็บไซต์ทางการของ ESL: ดาวน์โหลด
คอนฟิกต้องอัปโหลดไปที่โฟลเดอร์ cfg และสามารถรันในเกมด้วยคำสั่ง:
rcon_password YourPassword // เข้าสู่ระบบผ่าน rcon เพื่อสั่งคำสั่ง rcon
rcon exec esl5on5
หลังจากนั้น ค่าคำสั่ง ESL ทั้งหมดจะถูกโหลดและเกมก็พร้อมเริ่ม!