7 Days to Die ინახავს voxel სამყაროს, რომელსაც მოთამაშეები აქტიურად ანგრევენ, და ეს ბევრად უფრო რთული ამოცანაა, ვიდრე ჩანს. სერვერს გასაშვებად 8 GB სჭირდება, ხოლო 12 ან მეტი - როცა რვა ადამიანი 10k შემთხვევით სამყაროზე არის გაფანტული; ასევე ერთი სწრაფი ბირთვი, რომელსაც ის შეინარჩუნებს, და სამი პორტი. შესრულებისთვის მნიშვნელოვანი პარამეტრები ისაა, რომლებიც განსაზღვრავს, ამ სამყაროს რა ნაწილი არის ერთდროულად ჩაბუნებული, ხოლო horde ღამე ის დროა, როცა შენი ყველა არჩევანი ერთ საღამოში ჩანს. ეს გზამკვლევი მთელ ფაილს გადის - თითოეული პარამეტრი რას აკეთებს და რა ჯდება, პორტები, ადმინისა და telnet ინტერფეისები, modlet-ები და ის კონკრეტული გზა, რომლითაც 7 Days-ის save ფუჭდება.
რა არის dedicated სერვერი და რა ხდის მას მძიმეს#
Dedicated სერვერი უფასოა და SteamCMD-დან მოდის, app id-ით 294420. ის უინტერფეისოდ მუშაობს, ტვირთავს ერთ სამყაროსა და ერთ save-ს და მას ასიმულირებს, ონლაინ ვინმე იმყოფება თუ არა.
დატვირთვას ოთხი რამ განსაზღვრავს და მათგან მხოლოდ ერთია მოთამაშეთა რაოდენობა:
- ჩატვირთული chunk-ები. თითოეული მოთამაშე თავისი გარშემო chunk-ების ერთ ნაკრებს ცოცხლად ინახავს. რვა მოთამაშე ერთ ქალაქში იაფია; რვა მოთამაშე 10k რუკის რვა კუთხეში თითოეული თავის სამუშაო ნაკრებს ინახავს და ჯამები იზრდება.
- Entity-ები. ზომბები, ცხოველები და დაგდებული ნივთები - თითოეული tick-ს იღებს. სწორედ ამიტომ არის
MaxSpawnedZombiesსერვერზე ყველაზე მნიშვნელოვანი რიცხვი. - დინამიკური mesh. თანამედროვე ვერსიები ფონურად ითვლის სტრუქტურულ საყრდენსა და ჩამოქცევას იმ შენობებისთვის, რომლებიც მოთამაშეებმა შეცვალეს. სწორედ ამიტომ წერს სერვერი დისკზე განუწყვეტლივ და ამის დავიწროება ან გამორთვა შეიძლება.
- სამყაროს ზომა, უმეტესად გენერაციის დროს და დისკზე. 10k შემთხვევითი სამყარო პირველად აშენებისას რეალურ დროსა და მეხსიერებას მოითხოვს, შემდეგ კი შესანახად region ფაილების დიდ რაოდენობას.
სამყარო ერთხელ გენერირდება GeneratedWorlds საქაღალდეში, რომელშიც არის heightmap, biome და splat გამოსახულებები და prefabs.xml, სადაც ჩამოთვლილია ყველა განთავსებული საინტერესო ადგილი. save, რომელზეც მოთამაშეები ზემოქმედებენ, ცალკეა. ამ ორის განსხვავების ცოდნა გაძლევს საშუალებას, სერვერი გადატვირთო რუკის ხელახლა გენერაციის გარეშე და რუკა ხელახლა დაგენერირო ახალი ინსტალაციის გარეშე.
მოთხოვნები და რესურსების მოხმარება#
| კონფიგურაცია | RAM | CPU | დისკი |
|---|---|---|---|
| Navezgane ან 6k სამყარო, 4 მოთამაშემდე | 8 GB | 2 ბირთვი | 40 GB |
| 8k შემთხვევითი სამყარო, 6-8 მოთამაშე | 10-12 GB | 2-3 ბირთვი | 55 GB |
| 10k სამყარო, 8+ მოთამაშე, გაფანტული | 12-14 GB | 3 ბირთვი | 70 GB |
| Modlet-ები, განსაკუთრებით overhaul-ები | დაამატე 2-4 GB | - | დაამატე 10 GB |
- გენერაცია პიკია. 10k შემთხვევითი სამყაროს აშენება პირველ გაშვებაზე ბევრად მეტ მეხსიერებას იყენებს, ვიდრე მისი გაშვება, და იმდენ ხანს გრძელდება, რომ ხალხს ჰგონია, სერვერი გაჭედა. ის არ გაჭედილა. სამყარო გენერირე ერთხელ და მერე მისი backup აიღე.
- CPU: სამყაროს სიმულაციაში ერთი thread დომინირებს. სიხშირე განსაზღვრავს, რამდენ ზომბს შეუძლია ერთდროულად გზის პოვნა, და ეს იგივეა, რაც იმის თქმა, რომ ის horde ღამეს განსაზღვრავს.
- დისკი: ინსტალაცია დაახლოებით 20 GB-ია, ხოლო save იზრდება ყოველ ბლოკზე, რომელსაც მოთამაშე ამტვრევს. კარგად შემოვლილი 10k სამყაროს region ფაილები რამდენიმე გიგაბაიტამდე შეიძლება გაიზარდოს.
- ქსელი: ყველაზე მძიმე მომენტი ახალი მოთამაშის პირველი შესვლაა, როცა სერვერი მას შესწავლილ სამყაროს უგზავნის.
სერვერის დაყენება და გაშვება#
$ steamcmd +force_install_dir /home/7dtd/server +login anonymous \ +app_update 294420 validate +quit$ cd /home/7dtd/server$ ./startserver.sh -configfile=serverconfig.xmlWindows-ზე იგივე საქმეს აკეთებს startdedicated.bat, რომელიც 7DaysToDieServer.exe-ს იმავე არგუმენტით იძახებს. SteamCMD ახსნილი აღწერს branch-ებსა და განახლების სკრიპტებს, თუ გინდა ვერსია დააფიქსირო და არა ყოველი განახლება მიიღო.
RE:NODE-ზე 7 Days to Die-ის ინსტალაცია Setup ჩანართზე Steam-ის ლოგინს ითხოვს. სერვერი მაშინვე იქმნება და ინსტალაცია ამ მონაცემებს ელოდება, რომლებიც აკრეფისთანავე ინახება - ამიტომ მთავარის ნაცვლად სათადარიგო Steam ანგარიში გამოიყენე.
serverconfig.xml: პარამეტრები, რომლებიც მნიშვნელოვანია#
ფაილი XML-ია, ერთი property თითო ხაზზე, და თითქმის ყველა ჩანაწერს კომენტარი აქვს. კომენტარებს ნუ წაშლი; ისინი თამაშის საუკეთესო დოკუმენტაციაა.
<?xml version="1.0"?><ServerSettings> <property name="ServerName" value="Longship Crew"/> <property name="ServerPassword" value=""/> <property name="ServerMaxPlayerCount" value="8"/> <property name="ServerVisibility" value="2"/> <property name="ServerPort" value="26900"/> <property name="GameWorld" value="RWG"/> <property name="WorldGenSeed" value="Longship"/> <property name="WorldGenSize" value="8192"/> <property name="GameName" value="LongshipSave"/> <property name="GameDifficulty" value="2"/> <property name="DayNightLength" value="60"/> <property name="MaxSpawnedZombies" value="64"/> <property name="BloodMoonEnemyCount" value="8"/> <property name="EACEnabled" value="true"/></ServerSettings>სამყარო და იდენტობა
| Property | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
GameWorld | Navezgane | Navezgane, RWG ან ფაილში დასახელებული წინასწარ დაგენერირებული რუკა |
WorldGenSeed | - | Seed სტრიქონი RWG-ისთვის. იგივე seed, იგივე რუკა |
WorldGenSize | 6144 | 2048-ის ჯერადი 4096-დან 16384-მდე. მხოლოდ RWG-ისთვის |
GameName | - | save-ის სახელი. შეცვლი და ახალ save-ს იწყებ |
ServerMaxPlayerCount | 8 | მოთამაშეთა ზღვარი |
ServerVisibility | 2 | 2 საჯარო, 1 მეგობრები, 0 სიაში არ ჩანს |
ServerPort | 26900 | თამაშის პორტი |
ServerPassword | ცარიელი | შესვლის პაროლი |
GameWorld და GameName ერთად განსაზღვრავს, რომელი save ჩაიტვირთება. რომელიმეს შეცვლა ძველის გვერდით ახალს იწყებს, და სწორედ ასე ახდენ სერვერის შეგნებულ გადატვირთვას და ასევე ასე კარგავენ ხალხი სამყაროს შემთხვევით.
სირთულე და მაჩვენებლები
| Property | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
GameDifficulty | 1 | 0-დან 5-მდე. გავლენას ახდენს მიღებულ და მიყენებულ ზიანზე და არა ზომბების რაოდენობაზე |
XPMultiplier | 100 | პროცენტი |
LootAbundance | 100 | პროცენტი |
LootRespawnDays | 7 | დღეები, სანამ გაძარცული კონტეინერი ისევ შეივსება |
DayNightLength | 60 | რეალური წუთები ერთ თამაშისეულ დღეზე |
DayLightLength | 18 | დღის სინათლის თამაშისეული საათები |
DropOnDeath | 1 | 0 არაფერი, 1 ყველაფერი, 2 toolbelt, 3 backpack |
AirDropFrequency | 72 | თამაშისეული საათები. 0 გამორთავს |
PlayerKillingMode | 3 | 0 PvP-ის გარეშე, 3-მდე - ყველა ხოცავს ყველას |
DayNightLength ის პარამეტრია, რაზეც ჯგუფები ყველაზე მეტს კამათობენ, და ორივე შემთხვევაში არაფერი ჯდება. ნაგულისხმევი სამოცი წუთია; ოთხმოცდაათი გაძლევს სამუშაო დღეს, რომელიც საღამოს სესიაში ეტევა, და ასევე blood moon-ებს შორის კვირას ნახევრით ზრდის.
ზომბები და blood moon
| Property | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
MaxSpawnedZombies | 64 | მთელი სერვერის ზღვარი. პარამეტრი, რომელიც გიხსნის |
MaxSpawnedAnimals | 50 | ცხოველების ზღვარი მთელ სერვერზე |
ZombieMove | 0 | დღის სიჩქარე, 0 ჩვეულებრივი სიარულიდან 4 nightmare-მდე |
ZombieMoveNight | 3 | ღამის სიჩქარე |
ZombieFeralMove | 3 | Feral სიჩქარე |
ZombieBMMove | 3 | Blood moon-ის სიჩქარე |
BloodMoonFrequency | 7 | დღეები blood moon-ებს შორის. 0 გამორთავს |
BloodMoonRange | 0 | შემთხვევითი გადახრა დღეებში ამ სიხშირის გარშემო |
BloodMoonWarning | 8 | საათი, როცა ცა წითლდება. -1 გაფრთხილების გარეშე |
BloodMoonEnemyCount | 8 | ერთდროულად ცოცხალი ზომბები თითო მოთამაშეზე |
EnemyDifficulty | 0 | 0 ჩვეულებრივი, 1 feral |
Land claim-ები, ბაზები და გაფუჭება
| Property | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
LandClaimCount | 3 | claim ბლოკები, რომლებიც მოთამაშეს აქტიური შეიძლება ჰქონდეს |
LandClaimSize | 41 | ბლოკები განივად, claim-ის ცენტრით |
LandClaimDeadZone | 30 | მინიმალური ბლოკები სხვადასხვა მოთამაშის claim-ებს შორის |
LandClaimExpiryTime | 7 | ოფლაინ დღეები, სანამ claim გაფუჭებას დაიწყებს |
LandClaimDecayMode | 0 | როგორ ეცემა გამძლეობა ამის შემდეგ |
LandClaimOnlineDurabilityModifier | 4 | ბლოკების სიმტკიცე claim-ის შიგნით, სანამ მფლობელი ონლაინაა |
LandClaimOfflineDurabilityModifier | 4 | იგივე, სანამ ის ოფლაინაა |
BedrollDeadZoneSize | 15 | ბლოკები bedroll-ის გარშემო, სადაც ზომბები არ ჩნდებიან |
BedrollExpiryTime | 45 | დღეები, სანამ გამოუყენებელი bedroll ძალას კარგავს |
შესრულება და მოვლა
| Property | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
DynamicMeshEnabled | true | სტრუქტურული გადათვლა მოთამაშეების მიერ შეცვლილი შენობებისთვის |
DynamicMeshLandClaimOnly | true | ამ სამუშაოს შეზღუდვა claim-ებით დაფარულ ადგილებზე |
DynamicMeshLandClaimBuffer | 3 | Chunk-ების ბუფერი claim-ის გარშემო |
DynamicMeshMaxItemCache | 3 | რამდენი mesh ელემენტი ინახება მეხსიერებაში |
MaxUncoveredMapChunksPerPlayer | 131072 | თითო მოთამაშის გახსნილი რუკის ზღვარი |
ServerMaxWorldTransferSpeedKiBs | 512 | სიჩქარე, რომლითაც სამყარო შემომავალ მოთამაშეს ეგზავნება |
PersistentPlayerProfiles | false | true ნიშნავს, რომ მხოლოდ ცნობილ მოთამაშეებს შეუძლიათ ხელახლა შესვლა |
EACEnabled | true | Easy Anti-Cheat. DLL მოდების უმეტესობისთვის უნდა იყოს false |
DynamicMeshLandClaimOnly შესრულების პარამეტრია, რომელსაც არავინ ახსენებს. ჩართულს რომ დატოვებ, ძვირი სტრუქტურული სამუშაო მხოლოდ claim-ებით დაფარული ბაზების გარშემო ხდება. გამორთულს - ყველგან, სადაც მოთამაშეებმა თხრა, ხოლო რამდენიმე თვის ასაკის სერვერზე ეს რუკის უმეტესი ნაწილია.
Blood moon დატვირთვის ტესტია#
ყველაფერი წესრიგშია მეშვიდე ღამემდე, როცა ზომბების რაოდენობა ერთდროულად ყველა მოთამაშეზე მრავლდება. თუ სერვერი უნდა დაეცეს, სწორედ მაშინ დაეცემა. horde-ზე გაზომე და კვირის დანარჩენი თავისით მოგვარდება.
არითმეტიკა ის ნაწილია, რასაც ხალხი ცდება. BloodMoonEnemyCount თითო მოთამაშეზეა: ოთხი მოთამაშე რვა-რვით ოცდათორმეტი ზომბია, რვა მოთამაშე რვა-რვით სამოცდაოთხია, ხოლო რვა მოთამაშე თექვსმეტ-თექვსმეტით ას ოცდარვა იქნებოდა. MaxSpawnedZombies მთელი სერვერის ჯამს ზღუდავს, ამიტომ ნაგულისხმევი 64-ის დროს ეს ბოლო კონფიგურაცია ჩუმად მაინც 64 ხდება - და მოთამაშეები, რომლებსაც უთხრეს, რომ horde უფრო დიდია, იტყვიან, რომ თამაში გატეხილია, სინამდვილეში კი ის უბრალოდ შეზღუდულია.
კიდევ ორი ჩვევა გეხმარება. სთხოვე მოთამაშეებს, horde-ს ერთმანეთთან საკმაოდ ახლოს მყოფი ბაზებიდან შეებრძოლონ, რადგან ოთხი ცალკე horde ბაზა ოთხ ცალკე გზის პოვნის ამოცანას ნიშნავს, რომლებიც ერთდროულად მუშაობს. და სერვერი გადატვირთე horde ღამემდე და არა მის შემდეგ - მეხსიერების მოხმარება კვირის განმავლობაში იზრდება და horde ღამე ზღვრის აღმოჩენისთვის ყველაზე ცუდი მომენტია. გადატვირთვის გრაფიკები, რომლებიც გეხმარება აღწერს საათის არჩევას, ხოლო RE:NODE-ზე Schedules ჩანართი მას თავად გაუშვებს, წინასწარი გამაფრთხილებელი შეტყობინებით.
პორტები, telnet და web dashboard#
| პორტი | პროტოკოლი | დანიშნულება |
|---|---|---|
26900 | TCP და UDP | თამაშის ტრაფიკი და სერვერის სია |
26901 | UDP | თამაშის ტრაფიკი |
26902 | UDP | თამაშის ტრაფიკი |
8081 | TCP | Telnet, თუ TelnetEnabled ჩართულია |
8080 | TCP | Web dashboard, თუ WebDashboardEnabled ჩართულია |
პორტს 26900 TCP-ც სჭირდება და UDP-ც, რაც იმდენად უჩვეულოა, რომ ღირს შემოწმება და არა დაშვება - მხოლოდ UDP-ის წესი სერვერს სიაში გამოუჩენელს ტოვებს. ზოგი დოკუმენტაცია ბლოკს 26903-მდე აფართოებს; 26900-26903-ის გახსნა არაფერს ჯდება და კითხვას აქრობს. გეიმ სერვერის პორტები ახსნილი აღწერს, რატომ იყენებს სია და თამაში თავიდანვე სხვადასხვა გზას.
RE:NODE-ის 7 Days to Die-ის გეგმებს ორი allocation მოჰყვება, დანარჩენს კი Network ჩანართი ამატებს - მათ შორის ცალკეულს, თუ გინდა telnet ან dashboard მისაწვდომი იყოს.
Telnet დისტანციური ადმინისტრირების ინტერფეისია და ის უბრალო ტექსტია: პაროლი ქსელში ღიად გადის და მასში აკრეფილს სერვერზე სრული უფლებები აქვს. თუ TelnetPassword ცარიელია, სერვერი მხოლოდ loopback-ზე უსმენს, რაც უსაფრთხო ნაგულისხმევია. თუ მას აღებ, დააყენე ძლიერი პაროლი, შეზღუდე წყარო მისამართი და ჯერ წაიკითხე RCON უსაფრთხოდ - იგივე მსჯელობა ყველა დისტანციურ კონსოლზე მუშაობს.
WebDashboardEnabled ჩართავს პატარა web ინტერფეისს პორტზე 8080. EnableMapRendering აიძულებს, შესწავლილი რუკა დახატოს, რაც მართლაც სასიამოვნოა და ჯდება როგორც CPU-ს, ასევე მუდმივად მზარდი tile-ების საქაღალდეს.
ადმინები და კონსოლის ბრძანებები#
ადმინის უფლებები ცხოვრობს serveradmin.xml-ში, კონფიგურაციის ფაილის გვერდით. სერვერი მას პირველ გაშვებაზე წერს და ეს დაგენერირებული ფაილია ზუსტი ფორმატის ავტორიტეტი - ძველი ვერსიები ადამიანებს steamID ატრიბუტით განსაზღვრავდა, ხოლო მიმდინარე ვერსიები პლატფორმისა და მომხმარებლის id-ის წყვილს იყენებს, რადგან ახლა იმავე სერვერებზე კონსოლის მოთამაშეებიც არიან.
<adminTools> <admins> <admin platform="Steam" userid="76561198012345678" permission_level="0" /> </admins> <permissions> <permission cmd="dm" permission_level="0" /> </permissions> <whitelist /> <blacklist /></adminTools>უფლების დონეები მერყეობს 0-დან, რომელიც მფლობელია და ყველაფრის გაკეთება შეუძლია, 1000-მდე, რაც ყველა მოთამაშეა. თითოეულ ბრძანებას საკუთარი მოთხოვნილი დონე აქვს, ამიტომ მოდერატორს kick-სა და ban-ს ჩააბარებ, კრეატიული მენიუს გარეშე.
| ბრძანება | რას აკეთებს |
|---|---|
help | ბრძანებებს ჩამოთვლის ან ერთს განმარტავს |
lp | დაკავშირებული მოთამაშეების სია id-ებითა და პოზიციებით |
le | Entity-ების სია, ყველა ცოცხალი ზომბის ჩათვლით |
mem | მეხსიერების მოხმარება, entity-ებისა და chunk-ების რაოდენობა |
saveworld | save-ის დაუყოვნებლივ ჩაწერა |
shutdown | შენახვა და სუფთად გაჩერება |
kick <name> | მოთამაშის გათიშვა |
ban add <name> <n> <unit> | ban გარკვეული პერიოდით, ერთეული - წუთები, საათები ან დღეები |
admin add <name> <level> | უფლების დონის მინიჭება |
say "<text>" | ყველასთვის სერვერის სახელით თქმა |
settime <day> <hour> <minute> | საათის დაყენება |
llp | Land claim-ების სია |
dm | debug რეჟიმის გადართვა |
mem ის ბრძანებაა, რომელიც უნდა ისწავლო. ის entity-ების რაოდენობას მეხსიერებასთან ერთად ბეჭდავს, და entity-ების რაოდენობა, რომელიც გადატვირთვებს შორის განუწყვეტლივ იზრდება, გეუბნება, რომ რაღაც არ ქრება - ჩვეულებრივ დაგდებული ჩანთები ან ცხოველები - მანამდე, სანამ სერვერს მეხსიერება ამოეწურება. სერვერის დატვირთვის გრაფიკის კითხვა აღწერს, როგორ გამოიყურება იმავე ამბის მეხსიერების მხარე გარედან.
მოდები და modlet-ები#
მოდები ჩაიდება სერვერის ძირში Mods საქაღალდეში, თითოეული თავის საქაღალდეში, რომელიც შეიცავს ModInfo.xml-ს და ჩვეულებრივ Config დირექტორიას XML ფაილებით, რომლებიც თამაშის საკუთარ კონფიგურაციას XPath ოპერაციებით ასწორებს. ამ დიზაინს უჩვეულოდ სასიამოვნო შედეგი აქვს:
- Modlet, რომელიც მხოლოდ XML-ს ასწორებს, სერვერის მხარისაა. სერვერი თავის კონფიგურაციას შემოსულ კლიენტებს უგზავნის, ამიტომ modlet, რომელიც რეცეპტებს, loot-ს, spawn-ებს ან პროგრესიას ცვლის, მუშაობს იმის გარეშე, რომ ვინმემ რამე დააყენოს. ეს პოპულარული ცხოვრების გამარტივების მოდების დიდ ნაწილს მოიცავს.
- მოდი, რომელიც ასეტებსა ან კოდს ამატებს, არ არის. ახალი აიკონები, მოდელები, ხმები ან DLL ნიშნავს, რომ ყველა კლიენტმა ისიც უნდა დააყენოს, ხოლო
EACEnabledუნდა იყოსfalseყველაფრისთვის, რაც Harmony patching-ს იყენებს. EAC-ის გამორთვა რეალური კომპრომისია - მოდის მისაღებად anti-cheat-ს ხსნი. - Overhaul-ები ორივეა, პლუს ახალი სამყარო. Darkness Falls და მისი მსგავსები ახალ save-ს ელიან და არა არსებულს.
დაამატე ერთი modlet, გადატვირთე, ითამაშე საღამო, დაამატე შემდეგი. ეს სიის ჩაკოპირებაზე ნელია და ერთადერთი მეთოდია, რომელიც გეუბნება, რომელმა გააფუჭა სერვერი, რადგან პასუხი ყოველთვის ბოლოს დამატებულია. ყოველი თამაშის განახლება modlet-ებს აუქმებს, სანამ მათი ავტორები არ დაეწევიან, ამიტომ მოდირებულმა სერვერმა განახლებები ავტომატურად არ უნდა მიიღოს - მოდირებული სერვერის სისუფთავე ამ არგუმენტის უფრო ფართო ვერსიას შეიცავს, ხოლო ადმინის ბრძანებებისა და modlet-ების გზამკვლევი XPath მხარეს უფრო ღრმად განიხილავს.
Save-ები, region ფაილები და ნელი დაზიანება#
save ცხოვრობს მომხმარებლის მონაცემების საქაღალდეში, Saves/<World>/<GameName>/-ში: თამაშის მდგომარეობა, Player საქაღალდე ერთი ფაილით თითოეულ ადამიანზე, ვინც ოდესმე შემოსულა, და Region საქაღალდე .7rg ფაილებით, რომელთაგან თითოეული რუკის ერთ კვადრატს ფარავს.
ეს ბოლო დეტალი სასარგებლოა. სამყარო ერთი ფაილი არ არის, ის ასობით ფაილია, და ჩაწერის შუაში მოკლულ სერვერს შეუძლია ზუსტად ერთი მათგანი დააზიანოს. სიმპტომი უცნაური და კონკრეტულია: გარკვეული ადგილი, რომელიც კლიენტებს ჩამოაგდებს, როცა მასში შედიან, ხოლო რუკის დანარჩენი ნაწილი წესრიგშია. შეკეთება თანაზომადია - აღადგინე ის ერთი .7rg backup-იდან და დაკარგე მხოლოდ ის, რაც მის შიგნით აშენდა, მთელი სამყაროს უკან დაბრუნების ნაცვლად.
- სერვერი სწორად გააჩერე.
shutdownან პანელის Stop, ორივე ჯერ ინახავს. პროცესის მოკვლა ის არის, რაც region ფაილებს პირველ რიგში აზიანებს. - Backup აიღე მთელი save საქაღალდის, და არა მხოლოდ region დირექტორიის. მოთამაშის ფაილები ყველას ინვენტარსა და უნარის ქულებს ინახავს, და სამყაროს მათ გარეშე აღდგენა თავისთავად კატასტროფაა.
- ერთხელ სცადე აღდგენა. Backup, რომელიც არავის აღუდგენია, ჰიპოთეზაა - backup-ები, რომლებიც მართლა აღდგება მოკლე ახსნაა, რატომ.
- დაგენერირებული სამყაროს ასლიც შეინახე. იმავე seed-იდან ხელახლა გენერაციას იგივე რუკა უნდა გამოეღო, მაგრამ თამაშის ვერსიებს შორის ამ წინადადებაში „უნდა“ ბევრ საქმეს აკეთებს.
RE:NODE-ზე backup slot-ები 7 Days to Die-ის ყველა გეგმაზეა, backup-ები ინახება იმ მანქანისგან განცალკევებით, რომელსაც იცავენ, და მათი დაბლოკვა rotation-ისგან შეიძლება, ხოლო Schedules ჩანართს შეუძლია დალაგებული ამოცანების სიის გაშვება - saveworld ბრძანება, მოკლე დაყოვნება, შემდეგ backup. თუ სერვერი ოდესმე მეხსიერების ზღვარს მიაღწევს, კონტეინერი ჩერდება და სუფთად გადაიტვირთება swap-ში დატოვების ნაცვლად, რაც ალტერნატივაზე უსაფრთხოა, მაგრამ მაინც შეუნახავი გაჩერებაა, ამიტომ ღამის დაგეგმილი backup უფრო მნიშვნელოვანია სერვერზე, რომელიც თავის ჭერთან ახლოს მუშაობს.
პრობლემების მოგვარება#
სერვერი სიაში არ ჩანს. შეამოწმე, რომ ServerVisibility არის 2, შეამოწმე, რომ 26900 ღიაა TCP-ზეც და UDP-ზეც, შემდეგ რამდენიმე წუთი დაელოდე. გამოსცადე კლიენტის Connect to IP ოპციით მისამართზე პირდაპირ დაკავშირებით; თუ ეს მუშაობს, ეს სიის პრობლემაა და არა სერვერის.
პირველი გაშვება მარადიულად გრძელდება. 10k რუკაზე შემთხვევითი სამყაროს გენერაცია ნელია. უყურე ლოგს და არა საათს და დაუშვი დამთავრება - შუაში გაჩერება ნახევრად დასრულებულ სამყაროს ტოვებს, რომელიც მაინც ხელახლა უნდა დაგენერირდეს.
ახალი მოთამაშეები შესვლისას timeout-ს იღებენ. ისინი შესწავლილ სამყაროს იწერენ. გაზარდე ServerMaxWorldTransferSpeedKiBs ნაგულისხმევი 512-დან.
მოდირებულ კლიენტებს მაშინვე აგდებს. Easy Anti-Cheat. დააყენე EACEnabled false-ზე, თუ მოდს ეს სჭირდება, და შეეგუე იმას, რასაც ეს ნიშნავს.
ერთი ადგილი ყველას აგდებს, ვინც მასში შედის. დაზიანებული region ფაილი. იპოვე .7rg, რომელიც იმ კოორდინატებს ფარავს, და აღადგინე ის ერთი ფაილი.
მეხსიერება მთელი კვირა იზრდება და სერვერი horde ღამეს კვდება. გადატვირთე ყოველდღე. 7 Days არ ათავისუფლებს ყველაფერს, რასაც გამოყოფს, და horde ღამე ზღვრის აღმოჩენისთვის ყველაზე ცუდი შესაძლო მომენტია.
მოთამაშეებმა კონფიგურაციის ცვლილების შემდეგ პერსონაჟები დაკარგეს. GameName ან GameWorld შეიცვალა, ამიტომ ახალი save ჩაიტვირთა. ძველი save ისევ დისკზეა თავისი სახელით.
FAQ#
რამდენი RAM სჭირდება 7 Days to Die სერვერს?
რვა გიგაბაიტი Navezgane-ისთვის ან 6k სამყაროსთვის რამდენიმე მეგობართან ერთად, ათიდან თორმეტამდე 8k შემთხვევითი სამყაროსთვის სრულ ჯგუფთან, და მეტი overhaul მოდებთან. სამყაროს გენერაცია მუშაობის მაჩვენებელს აღემატება, ამიტომ რუკა, რომლის შექმნაც შეგიძლია, უფრო პატარაა, ვიდრე ის, რომლის გაშვებაც შეგიძლია.
BloodMoonEnemyCount თითო მოთამაშეზეა თუ მთელ სერვერზე?
თითო მოთამაშეზე. ოთხი მოთამაშე რვა-რვით ოცდათორმეტ ზომბს ნიშნავს. MaxSpawnedZombies მთელი სერვერის ჭერია და ჯამს ჩუმად ზღუდავს, სწორედ ამიტომ ხდება, რომ თითო მოთამაშის რაოდენობის გაზრდა ზოგჯერ საერთოდ არაფერს ცვლის.
უნდა დააყენონ მოთამაშეებმა სერვერის მოდები?
მხოლოდ იმ შემთხვევაში, თუ მოდი ასეტებს ან კოდს ამატებს. Modlet, რომელიც მხოლოდ XML-ს ასწორებს - loot, რეცეპტები, spawn-ები, პროგრესია - კლიენტებს სერვერისგან ეგზავნება და არაფრის დაყენება არ სჭირდება. ყველაფერი, რასაც ახალი მოდელები, აიკონები ან DLL აქვს, ორივე მხარეს უნდა იყოს.
შემიძლია სამყაროს ზომა შევცვალო save-ის დაკარგვის გარეშე?
არა. სამყაროს ზომა დაგენერირებული სამყაროს თვისებაა და მისი შეცვლა ახალს აგენერირებს. შენი არსებული save დისკზე ძველი GameName-ით რჩება, ამიტომ ცვლილება შექცევადია, მაგრამ სამყაროს ადგილზე გაფართოების საშუალება არ არსებობს.
რატომ იჭედება სერვერი გრაფიკით?
ის ინახავს, ან დინამიკური mesh აკეთებს სტრუქტურულ სამუშაოს. რამდენიმე წუთში ერთხელ განმეორებადი გაჭედვა save-ია; არარეგულარული, ბაზის ჩამოქცევის შემდეგ - mesh, და DynamicMeshLandClaimOnly ავიწროებს, სად ხდება ეს სამუშაო.
უნდა გამოვრთო Easy Anti-Cheat?
მხოლოდ თუ მოდი, რომელიც გინდა, ამას მოითხოვს, და მხოლოდ სერვერზე, სადაც ყველას იცნობ. EAC 7 Days to Die-ში კლიენტის მხარეს თაღლითობისგან მთავარი დაცვაა და ნაწილობრივი პარამეტრი არ არსებობს.




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