Holdfast: Nations At War-ის გამოყოფილი სერვერი SteamCMD-ით უფასოდ ჩამოსატვირთია (app id 1424230), მუშაობს Windows-სა და Linux-ზე, და მასთან დაკავშირებული ყველაფერი ერთ უბრალო ტექსტურ კონფიგურაციის ფაილშია: თავში მთელი სერვერის პარამეტრების ბლოკი, შემდეგ კი როტაციის ყოველი რაუნდისთვის ერთი !map_rotation start ... !map_rotation end ბლოკი, რომელიც ასახელებს რუკას, თამაშის რეჟიმს და ამ რაუნდის წესებს. მას სამი პორტი სჭირდება - server_port (ნაგულისხმევად 20100), steam_communications_port (8700) და steam_query_port (27000) - ადმინისტრირება კი თამაშის შიგნით ხდება F1 კონსოლით, rc login-ითა და ფაილში მითითებული ადმინის პაროლით. რედაქტირებამდე თამაშთან მოყოლილი serverconfig_default.txt საკუთარ ფაილში დააკოპირე, რადგან თამაშის განახლებები ნაგულისხმევ ფაილს თავიდან წერს.
ეს გზამკვლევი ფაილს თავიდან ბოლომდე მოიცავს: ინსტალაცია და გაშვება, გლობალური პარამეტრები, როტაციის ბლოკები და რაუნდის ის წესები, რომლებსაც მნიშვნელობა აქვს, რუკების კენჭისყრა, მოდები, ჩაშენებული გადატვირთვის დამგეგმავი და ადმინის კონსოლი.
როგორ მუშაობს Holdfast სერვერი#
Holdfast Unity-ზე დაწერილი თამაშია, სერვერი კი თამაშია, რომელიც გრაფიკის გარეშე მუშაობს. ის გაშვებისას კონფიგურაციის ფაილს ტვირთავს, როტაციის ბლოკებს თანმიმდევრობით თამაშობს (ან მოთამაშეებს მათ შორის კენჭისყრის საშუალებას აძლევს) და წრეზე ტრიალებს. როტაციის თითოეული ბლოკი რაუნდის სრული განსაზღვრებაა: რუკა, რეჟიმი, რომელი ფრაქცია უტევს და რომელი იცავს, რაუნდის ხანგრძლივობა, ტიკეტები, გაჩენის წესები, საკუთარ თავზე სროლა, კლასების ლიმიტები. ერთი და იგივე რუკა შეიძლება რამდენჯერმე გამოჩნდეს სხვადასხვა წესით.
ამ დიზაინს ორი შედეგი აქვს, რომელიც დაწყებამდე ღირს, იცოდე:
- ფაილი ერთია და ის გრძელია. მთელი სერვერის პარამეტრები და ყველა რაუნდის პარამეტრები ერთად ცხოვრობს. შეცდომა ერთ ბლოკში ამ რაუნდს აფუჭებს, და ამას მაშინ გაიგებ, როცა როტაცია მას მიაღწევს.
- წესები რაუნდზეა და არა სერვერზე. საკუთარ თავზე სროლა, გაჩენის ტაიმერები და კლასების ლიმიტები როტაციის თითოეული ბლოკის შიგნით დგინდება. თუ ერთი და იგივე წესი ყველგან გინდა, ის ყველა ბლოკში უნდა იყოს. ყოველი ახალი ბლოკისთვის შაბლონად ცნობილი, მუშა ბლოკი დააკოპირე.
Holdfast-ს არ აქვს გარე RCON პროტოკოლი იმ გაგებით, როგორც Source-ის თამაშებს. ადმინისტრირება თამაშის შიდა კონსოლია, რაც ნიშნავს, რომ ადმინი სერვერზე შესული უნდა იყოს, რომ ის მართოს.
მოთხოვნები და რესურსების მოხმარება#
Holdfast სერვერები დიდ რაოდენობას იტევს - ასზე გაცილებით მეტმოთამაშიანი ხაზოვანი ბრძოლები თამაშის არსია - და სერვერის დატვირთვა მოთამაშეებთან, კავალერიასთან, არტილერიასთან და, საზღვაო რუკებზე, ხომალდებთან ერთად იზრდება.
| კონფიგურაცია | RAM | CPU | შენიშვნები |
|---|---|---|---|
| მცირე საზოგადოება, 30-50 მოთამაშე | 3-4 GB | 2 ბირთვი | Army Battlefield, ზომიერი არტილერია |
| ხაზოვანი ბრძოლა, 100-150 მოთამაშე | 4-6 GB | 3 ბირთვი | გავრცელებული საჯარო ზომა |
| საზღვაო ბრძოლები, დიდი ხომალდები | 4-6 GB | 3 ბირთვი | ხომალდების ფიზიკა და ბევრი ზარბაზანი |
| ღონისძიების სერვერები 150-ზე მეტით | 6-8 GB | 3-4 სწრაფი ბირთვი | გაზომე, სანამ რაოდენობას დაპირდები |
ეს სამუშაო დიაპაზონებია და არა ოფიციალური ციფრები, და გულწრფელი რჩევაა, სლოტების რაოდენობის რეკლამამდე საკუთარ საზოგადოებასთან დატვირთვის ტესტი ჩაატარო. დატვირთული სერვერისთვის სიხშირეს მნიშვნელობა აქვს; რომელი რესურსი აკლია რეალურად, როგორ გაარჩიო, იხილე სტატიაში CPU თუ RAM სათამაშო სერვერებისთვის. დისკი მოკრძალებულია - ინსტალაცია რამდენიმე გიგაბაიტია და მოდებთან ერთად იზრდება.
ინსტალაცია და გაშვება#
$ steamcmd +force_install_dir /home/holdfast/server +login anonymous \ +app_update 1424230 validate +quitინსტალაციას მოყვება გაშვების ორი სკრიპტი - LaunchServer.sh Linux-ისთვის და LaunchServer.ps1 Windows-ისთვის - და სანიმუშო serverconfig_default.txt. სკრიპტები სერვერს გრაფიკის გარეშე უშვებს დაახლოებით ისეთი არგუმენტებით, როგორიცაა -startserver -batchmode -nographics -serverheadless, და -serverConfigFilePath-ით კონფიგის ფაილზე მიუთითებს.
პირველ რეალურ გაშვებამდე ორი რამ უნდა გააკეთო:
- დააკოპირე კონფიგი.
cp serverconfig_default.txt serverconfig_myserver.txtდა შენი ასლი შეცვალე. ნაგულისხმევი ფაილი თამაშის ყოველი განახლებით იცვლება. - დააკოპირე გაშვების სკრიპტიც და მისი
-serverConfigFilePathშენს ფაილზე გადაიყვანე. თამაშთან მოყოლილი სკრიპტიც განახლებისას თავიდან იწერება.
Linux ჰოსტებისთვის არსებობს საზოგადოების მიერ მხარდაჭერილი Docker image (cm2network/holdfastnaw), რომელიც პორტებისთვის გარემოს ცვლადებით კონფიგურირდება. ჰოსტინგის პანელზე სკრიპტებს არ ეხები; კონფიგის გზა და პორტები გაშვების ცვლადებია, კონფიგის ფაილი კი ფაილების მენეჯერში იცვლება. validate და განახლების სკრიპტები ზოგადად განხილულია სტატიაში SteamCMD ახსნილი.
გლობალური პარამეტრები: იდენტობა, პორტები და მოსახლეობა#
ფაილის თავში ის პარამეტრებია, რომლებიც მთელ სერვერზე ვრცელდება. ხაზები <setting> <value> ფორმისაა, კომენტარები #-ით იწყება, ცარიელი ხაზები კი იგნორირდება.
# Identityserver_name [EU] 33rd Line Battles | Sundays 19:00server_welcome_message Follow your officer. Rules on Discord.server_region europeserver_passwordserver_admin_password a-long-random-admin-password# Ports - unique per instance on one machineserver_port 20100steam_communications_port 8700steam_query_port 27000# Players and population bracketsmaximum_players 150population_low_min_players 30population_medium_min_players 60population_high_min_players 100# Behaviourmap_rotation_start_randomise falseinclude_officer_only_chat trueinclude_sergeants_in_officer_chat true| პარამეტრი | რას აკეთებს |
|---|---|
server_name | სახელი ბრაუზერში |
server_welcome_message | შეტყობინება, რომელიც მოთამაშეებს შემოსვლისას ეჩვენებათ |
server_region | რეგიონის ტეგი ბრაუზერში ფილტრაციისთვის, მაგ. europe, usa, usaeast, usawest, australia |
server_password | შესვლის პაროლი. საჯაროსთვის ცარიელი |
server_admin_password | პაროლი rc login-ისთვის |
server_port | თამაშის პორტი |
steam_communications_port | Steam-თან კომუნიკაციის პორტი |
steam_query_port | Steam query - ის, საიდანაც ბრაუზერი სახელსა და მოთამაშეების რაოდენობას კითხულობს |
maximum_players | მოთამაშეების ზღვარი |
population_*_min_players | ზღვრები, რომლებიც დაბალ, საშუალო და მაღალ მოსახლეობას განსაზღვრავს |
map_rotation_start_randomise | როტაციის დაწყება შემთხვევითი ბლოკიდან |
server_intro_title, server_intro_body | შემოსვლისას ნაჩვენები ამომხტარი ფანჯარა, კარგია წესებისთვის |
network_broadcast_mode | ქსელის პროფილი Standard ან Competitive |
მოსახლეობის კატეგორიები შეგნებულად ღირს დაყენება. რაუნდისა და რუკების კენჭისყრის რამდენიმე პარამეტრს დაბალი, საშუალო და მაღალი ვარიანტები აქვს, ამიტომ სერვერს შეუძლია, მაგალითად, თითქმის ცარიელისას მხოლოდ პატარა რუკები შესთავაზოს, სავსესას კი დიდი. ეს ფაილის ერთ-ერთი უკეთესი შესაძლებლობაა, და ის მხოლოდ მაშინ მუშაობს, როცა ზღვრები შენს რეალურ მოსახლეობას ემთხვევა.
რეგიონის ტეგი მხოლოდ ბრაუზერის იარლიყია. დააყენე ის იქ, სადაც სერვერი რეალურად მდებარეობს: გერმანიაში მდებარე სერვერი europe-ა. მოთამაშეები მას ping-ის მიხედვით ფილტრაციისთვის იყენებენ, ამიტომ არასწორი რეგიონი lag-ზე საჩივრების ნაკადს წარმოშობს.
პორტები და დაკავშირება#
| პორტი | ნაგულისხმევი | დანიშნულება |
|---|---|---|
server_port | 20100 | თამაშის ტრაფიკი |
steam_communications_port | 8700 | Steam-თან კომუნიკაცია |
steam_query_port | 27000 | Steam query - ბრაუზერის ინფორმაცია და მოთამაშეების რაოდენობა |
სამივე UDP-ით ხელმისაწვდომი უნდა იყოს, და თუ ერთ მანქანაზე ერთზე მეტ სერვერს უშვებ, სამივე თითოეული ინსტანციისთვის უნიკალური უნდა იყოს. query პორტი სწორედ ის არის, რაც ბრაუზერს შენი მოთამაშეების რაოდენობის ჩვენების საშუალებას აძლევს; დაბლოკილი query პორტის მქონე სერვერი შეიძლება ნორმალურად მუშაობდეს და ცარიელად ჩანდეს ან საერთოდ არ ჩანდეს. რატომ ყოფენ თამაშები ტრაფიკს ასე, განხილულია სტატიაში სათამაშო სერვერის პორტები ახსნილი.
რუკების როტაციის ბლოკები#
როტაციის თითოეული რაუნდი ბლოკია !map_rotation start-სა და !map_rotation end-ს შორის. სერვერთან მოყოლილი მაგალითები (და ახალ build-ებში example_map_rotations საქაღალდე) თითოეული რეჟიმისთვის სრულ ბლოკებს აჩვენებს; დაიწყე მათგან და არა მეხსიერებიდან, რადგან რუკების სახელები შიდა იდენტიფიკატორებია და ზუსტად უნდა ემთხვეოდეს.
!map_rotation startmap_name PalisadeArenagame_mode ArmyBattlefieldround_time_minutes 30faction_balancing trueallow_faction_switching falseallow_midround_spawning truefriendly_fire truespawn_immunity_timer 3!map_rotation end!map_rotation startmap_name Azuregame_mode NavalBattlefieldround_time_minutes 25max_tickets 2000max_player_respawns -1faction_balancing true!map_rotation endთამაშის რეჟიმები, რომლებსაც ყველაზე ხშირად გამოიყენებ:
| რეჟიმი | რა არის |
|---|---|
ArmyBattlefield | ღია სახმელეთო ბრძოლა, ხაზოვანი ბრძოლების საფუძველი |
ArmyConquest | სახმელეთო ბრძოლა დასაკავებელი წერტილებისთვის, ტიკეტებით |
ArmySiege | თავდამსხმელები გამაგრებულ პოზიციას უტევენ |
CoastalSiege | ხომალდები და სახმელეთო ძალები სანაპირო ციხესიმაგრეს უტევენ |
NavalBattlefield | ბრძოლა ხომალდებს შორის |
NavalConquest | საზღვაო ბრძოლა დასაკავებელი წერტილებისთვის |
FrontlinesOffensive | Frontlines რეჟიმი, ჩართული frontlines_mode-ით |
რეჟიმებისა და რუკების ნაკრები შენს თამაშის ვერსიასა და DLC-ზეა დამოკიდებული, და ინსტალაციაში არსებული სანიმუშო როტაციები საიმედო სიაა. რაუნდის პარამეტრები, რომელთა ცოდნაც ღირს:
- `faction_attacking` და `faction_defending` ასიმეტრიული რეჟიმებისთვის, როგორიცაა ალყები, მხარეებს ადგენს. გამოტოვე იქ, სადაც რეჟიმს ისინი არ სჭირდება.
- `round_time_minutes` - რაუნდის ხანგრძლივობა.
-1ნიშნავს დროის ლიმიტის გარეშე, რაც არენებსა და სავარჯიშო რუკებს შეეფერება. - `max_tickets`, `reinforcements_per_faction`, `max_player_respawns` - რამდენ ხანს შეუძლია თითოეულ მხარეს ბრძოლის გაგრძელება.
max_player_respawns-ზე-1შეუზღუდავია. - `faction_balancing` და `allow_faction_switching` - ორგანიზებული ხაზოვანი ბრძოლებისთვის ჩართული ბალანსირება და გამორთული გადასვლა პოლკებს ერთ მხარეს თავმოყრას უშლის.
- `friendly_fire` - ჩართულია ხაზოვანი ბრძოლების საზოგადოებების უმეტესობაში, სადაც ის დისციპლინის ნაწილია.
damage_splitგუნდისთვის მიყენებული ზიანის ნაწილს თავდამსხმელს უბრუნებს. - `spawn_immunity_timer` - გაჩენის დაცვა წამებში, მაქსიმუმ ხუთი.
- `allow_midround_spawning` - შეუძლიათ თუ არა დაგვიანებულებს მიმდინარე რაუნდში შემოსვლა.
- `class_system_orders` - ოფიცრის ბრძანებების სისტემა.
- `admin_console_allowed` - მუშაობს თუ არა ადმინის კონსოლი ამ რაუნდში.
რაუნდის ჩანაცვლებები უფრო შორს მიდის: კლასების ლიმიტები გაჩენის თითოეულ წერტილზე spawn_override-ით, საწყისი იარაღი, არტილერიის განლაგება, ხომალდების გაჩენა და ხომალდების სიცოცხლე საზღვაო რაუნდებისთვის. ისინი ძლიერი და მრავალსიტყვიანია. დაამატე ისინი თითო ბლოკად და თითოეული რაუნდი ღონისძიებამდე შეამოწმე და არა მის დროს.
რუკების კენჭისყრა#
ფიქსირებული როტაციის ნაცვლად სერვერს შეუძლია მოთამაშეებს ყოველი რაუნდის ბოლოს კანდიდატებს შორის კენჭისყრის საშუალება მისცეს. მთავარი გადამრთველები:
map_voting_enabled truemap_voting_duration 20map_voting_max_choices 3map_voting_allow_same_map falsemap_voting_history_count 4map_voting_include_random_choice truemap_voting_history_count უშლის ახლახან ნათამაშებ რუკას, რომ იმდენი რაუნდის განმავლობაში ხელახლა შეთავაზებულ იქნეს, და აქვს მოსახლეობის ვარიანტები (_verylow, _low, _medium, _high), რომ თითქმის ცარიელმა სერვერმა თავისი პატარა რუკები უფრო სწრაფად გაიმეოროს. როტაციის ბლოკებში population_*_playable გასაღებები აღნიშნავს, რომელი რაუნდები რა მოსახლეობისთვისაა შესაფერისი, და სწორედ ასე ერიდება კენჭისყრა თორმეტი ადამიანისთვის 150-მოთამაშიანი ალყის შეთავაზებას.
კენჭისყრა საჯარო სერვერებს შეეფერება. ორგანიზებულ საზოგადოებებს, რომლებიც დაგეგმილ ღონისძიებებს ატარებენ, ჩვეულებრივ ფიქსირებული როტაცია უნდათ და მას თიშავენ.
მოდები, დაგეგმილი გადატვირთვები და Discord-ში ლოგირება#
მოდები Steam Workshop-იდან მოდის. კონფიგი მათ Workshop-ის id-ით ასახელებს:
mods_installed 1234567890mods_installed_server_only 2345678901mods_installed იმ მოდებისთვისაა, რომლებიც სერვერსაც და კლიენტებსაც სჭირდება; mods_installed_server_only - სერვერის მხარის მოდებისთვის. ისეთი გასაღებები, როგორიცაა load_mod, load_mod_client_only და load_mod_server_only, ჩატვირთვას მართავს, mod_variable კი მოდს პარამეტრებს გადასცემს. ზემოთ მოცემული id-ები ჩანაცვლებებია, მოდის Workshop-ის გვერდზე კი წერია, რომელი გასაღებები სჭირდება. როგორც ნებისმიერ თამაშში, ყოველი კლიენტის მოდი სერვერსა და მოთამაშეებს შორის უნდა ემთხვეოდეს, თამაშის განახლებამ კი შეიძლება მოდი გააფუჭოს, სანამ ავტორი მას არ განაახლებს - იხილე Steam Workshop-ის მოდები გამოყოფილ სერვერებზე და რა ქნა, როცა მოდის განახლება რამეს აფუჭებს.
დაგეგმილი გადატვირთვები და გათიშვები კონფიგშია ჩაშენებული, რაც უჩვეულოა:
server_autorestart_interval_minutes 1440server_autorestart_overtime_minutes 15server_autorestart_broadcasted_message Server restarts at the end of this round.server_autorestart_broadcasted_message_interval_minutes 5overtime მნიშვნელობა მიმდინარე რაუნდს გადატვირთვამდე დასრულების საშუალებას აძლევს. გამოიყენე ან ეს, ან პანელის განრიგი, მაგრამ არა ორივე; გადატვირთვის ორი სისტემა სხვადასხვა საათზე დამაბნეველ საღამოებს ქმნის. პანელის განრიგს ის უპირატესობა აქვს, რომ ჯერ backup-ის გაკეთება შეუძლია. რამდენად ხშირად, განხილულია სტატიაში გადატვირთვის განრიგები, რომლებიც ეხმარება.
Discord-ში ლოგირება ადმინის მოვლენებისთვის discord_webhook_warning_* და discord_webhook_banmute_* გასაღებებით კონფიგურირდება, რომლებიც გაფრთხილებებს, ბანებსა და mute-ებს აგზავნის webhook-ებზე, რომლებსაც Discord-ში შექმნი. ჩართვა ღირს: ის შენს პერსონალს მოდერაციის ქმედებების ჩანაწერს აძლევს ისე, რომ ვინმეს ლოგების ხელით კოპირება არ უწევს. webhook-ის შექმნა ახსნილია სტატიაში Discord webhook-ები სერვერის სტატუსისთვის; ტოკენს საიდუმლოდ მოექეცი.
ხაზოვანი ბრძოლის ღონისძიების ჩატარება#
Holdfast-ის საზოგადოებების უმეტესობა ორგანიზებული ხაზოვანი ბრძოლების ჩასატარებლად არსებობს: პოლკები რეგისტრირდებიან, ოფიცრები მეთაურობენ, საღამო კი განრიგს მიჰყვება. კონფიგის ფაილი სწორედ ის ადგილია, სადაც ეს დისციპლინა ან მხარდაჭერილია, ან ძირს უთხრიან.
- ღონისძიებისთვის ფიქსირებული როტაცია გამოიყენე. გამორთე რუკების კენჭისყრა და ღონისძიების რაუნდები თანმიმდევრობით ჩამოთვალე. მოთამაშეებმა შემოსვლამდე უნდა იცოდნენ, რომელი რუკა და რეჟიმი მოდის შემდეგ.
- დაკეტე მხარეები.
faction_balancing trueდაallow_faction_switching falseპოლკებს იქ ტოვებს, სადაც ორგანიზატორებმა დააყენეს. ასიმეტრიულ რეჟიმებზეfaction_attackingდაfaction_defendingცალსახად დააყენე. - აკონტროლე კლასები.
spawn_overrideზღუდავს, რამდენი შეიძლება გაჩნდეს ერთი კლასიდან ერთ წერტილზე. ხაზოვანი ბრძოლების ბედი იმაზეა დამოკიდებული, რამდენად პროპორციულია ფარაკები, კავალერია და არტილერია ხაზის ქვეითებთან; ლიმიტები თითოეულ ბლოკში დააყენე და კეთილ ნებას ნუ დაეყრდნობი. - გადაწყვიტე დაგვიანებულების საკითხი.
allow_midround_spawning falseღონისძიებებისთვის გავრცელებულია, რომ ბრძოლა მათ გადაიხადონ, ვინც დასაწყისში იყო. საჯარო სერვერებს ის ჩართული უნდათ. - მიეცი ოფიცრებს საკუთარი არხი.
include_officer_only_chat trueოფიცრებს საკუთარ არხს აძლევს,include_sergeants_in_officer_chatკი წყვეტს, შედიან თუ არა მასში უნტეროფიცრები. - წესები იქ განათავსე, სადაც ხალხი დაინახავს.
server_intro_titleდაserver_intro_bodyშემოსვლისას ამომხტარ ფანჯარას აჩვენებს. გამოიყენე ის იმ სამი წესისთვის, რისთვისაც ხალხს აგდებენ, და არა მთელი წესდებისთვის.
შეინახე ცალკე კონფიგის ფაილი ღონისძიების საღამოებისთვის და ერთიც ღონისძიებებს შორის საჯარო სერვერისთვის, და გადართე გაშვების სხვა ფაილზე მიმართვითა და გადატვირთვით. ეს გაცილებით უსაფრთხოა, ვიდრე ყოველ კვირა ერთი ფაილის აქეთ-იქით რედაქტირება, და ნიშნავს, რომ კვირის ღონისძიების მომზადებისას დაშვებული შეცდომა სამშაბათის საჯარო სერვერს ვერ გააფუჭებს. ყოველი ცვლილების წინ ორივე ფაილის backup გააკეთე.
ადმინის ბრძანებები#
ადმინები თამაშში კონსოლს F1-ით ხსნიან და შედიან:
rc login a-long-random-admin-passwordrc helprc mapRotation 2ადმინის ყოველ ბრძანებას rc წინსართი აქვს. rc help ჩამოთვლის შენს ვერსიაში ხელმისაწვდომ ბრძანებებს, და სწორედ ეს არის ავტორიტეტული სია - ნაკრები განახლებებთან ერთად იზრდებოდა. გაგდება, დაბანვა, mute და გამოცხადება ყველა rc ბრძანებაა, rc mapRotation <n> კი შენი როტაციის დანომრილ ბლოკზე გადადის, და სწორედ ასე აგრძელებენ ადმინები ღონისძიებას, როცა რაუნდმა თავისი ამოწურა.
რადგან ადმინის პაროლი ყველაფერს იძლევა, მოექეცი მას ისეთივე სიფრთხილით, როგორითაც RCON-ის პაროლს (RCON უსაფრთხოდ მსჯელობას შეიცავს): გრძელი, უნიკალური, რაც შეიძლება ნაკლებ ადამიანთან გაზიარებული და შეცვლილი, როცა პერსონალის წევრი წავა. კონფიგში ადმინის ინდივიდუალური ანგარიში არ არსებობს, ამიტომ საერთო პაროლი მთელი უსაფრთხოების მოდელია.
პრობლემების მოგვარება#
განახლების შემდეგ სერვერი ნაგულისხმევი პარამეტრებით დაბრუნდა. შენ serverconfig_default.txt-ით ან ქარხნული გაშვების სკრიპტით უშვებდი. გამოიყენე საკუთარი ასლები.
სერვერი მუშაობს, მაგრამ ბრაუზერში არ ჩანს ან მოთამაშეებს არ აჩვენებს. query პორტი დახურულია ან სხვა ინსტანციას ეჯახება.
როტაციის ერთი რაუნდი ვერ იტვირთება ან არასწორს ტვირთავს. ამ ბლოკში map_name ან game_mode შეცდომით წერია. შეადარე სანიმუშო როტაციებს.
ერთ მანქანაზე ორი სერვერი ერთმანეთს ეჯახება. სამივე პორტი ინსტანციებს შორის განსხვავებული უნდა იყოს.
მოთამაშეები რაუნდს არასწორი მხარეებით ხედავენ. ასიმეტრიული რეჟიმისთვის faction_attacking და faction_defending აკლია ან ადგილებით არის გადაცვლილი.
`rc login` ვერ ხერხდება. პაროლი არ ემთხვევა server_admin_password-ს, ან ხაზი #-ით არის დაკომენტარებული.
მოდები მოთამაშეებისთვის არ იტვირთება. კლიენტის მოდი მხოლოდ სერვერისად არის ჩამოთვლილი, ან მოთამაშეებს სხვა ვერსია აქვთ.
FAQ#
სად არის Holdfast სერვერის კონფიგის ფაილი?
სერვერის ინსტალაციის საქაღალდეში, როგორც serverconfig_default.txt. დააკოპირე ის საკუთარ ფაილში, გაშვების სკრიპტი ან გაშვების ცვლადი ასლზე მიმართე და ის შეცვალე - განახლებები ნაგულისხმევს თავიდან წერს.
რომელი პორტები სჭირდება Holdfast სერვერს?
server_port (ნაგულისხმევად 20100), steam_communications_port (8700) და steam_query_port (27000), ყველა UDP და ყველა უნიკალური თითოეული ინსტანციისთვის ერთ მანქანაზე.
როგორ გავხდე ადმინი ჩემს Holdfast სერვერზე?
კონფიგში დააყენე server_admin_password, გადატვირთე, შემოდი, დააჭირე F1-ს და აკრიფე rc login, რასაც პაროლი მოსდევს. ამის შემდეგ rc help ადმინის ბრძანებებს ჩამოთვლის.
შემიძლია საკუთარ თავზე სროლის შეცვლა მთელი სერვერისთვის?
მხოლოდ friendly_fire-ის ყველა როტაციის ბლოკში დაყენებით. წესები რაუნდზეა, ამიტომ პარამეტრი ყველა ბლოკში დააკოპირე, რომელსაც იყენებ.
აქვს Holdfast-ს RCON?
გარე RCON პროტოკოლი არა. ადმინისტრირება თამაშის შიდა კონსოლია rc ბრძანებებით, ამიტომ ადმინი სერვერზე შესული უნდა იყოს.
რამდენ მოთამაშეს იტევს Holdfast სერვერი?
იმდენს, რამდენსაც maximum_players უშვებს და შენი აპარატურა გაუძლებს. 100-დან 150-მდე ხაზოვანი ბრძოლის სერვერები გავრცელებულია; უფრო დიდი რაოდენობები რეკლამამდე საკუთარ საზოგადოებასთან შეამოწმე.




კომენტარები
სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.