RE:NODE

სახელმძღვანელოები11 წუთის საკითხავი

Project Zomboid-ის რუკის რესეტი მოთამაშეების შენარჩუნებით

როგორ გადატვირთო Project Zomboid-ის სერვერი: სრული wipe, მხოლოდ რუკის რესეტი პერსონაჟებისა და ანგარიშების შენარჩუნებით, ნაწილობრივი რესეტი safehouse-ების ირგვლივ და ResetID.

0 მკითხველი

Project Zomboid-ის სერვერის რესეტი სამი ზომისაა, და რომელს მიიღებ, save-ის საქაღალდე წყვეტს. Zomboid/Saves/Multiplayer/<servername>/-ის წაშლა სამყაროსა და ყველა პერსონაჟს შლის, მაგრამ ტოვებს ანგარიშებს, whitelist-ს და ბანებს, რომლებიც Zomboid/db/<servername>.db-ში ცხოვრობს. ამ საქაღალდის შიგნით მხოლოდ რუკის chunk ფაილების წაშლა - players.db-ის შენარჩუნებით - სამყაროს აბრუნებს თავდაპირველ მდგომარეობაში, პერსონაჟები კი უნარებსა და ინვენტარს ინარჩუნებენ. მხოლოდ იმ chunk-ების წაშლა, რომლებიც დასაცავი ტერიტორიების გარეთაა, ნაწილობრივი რესეტია: ქალაქები ნადავლითა და ზომბებით ივსება, ბაზები რჩება. რომელიც არ უნდა აირჩიო, ჯერ სერვერი სუფთად გააჩერე, მთელი Zomboid საქაღალდის backup გააკეთე და ini-ში ResetID გაზარდე, როცა თავად სამყარო ახალია.

ეს გზამკვლევი ხსნის, რა არის save-ის თითოეული ფაილი, რესეტის სამ სახეს და თითოეულის შესრულებას, პარამეტრებს, რომელთა შეცვლაც რესეტს აიძულებს, და როგორ მართო სერვერი ისე, რომ რესეტები ნაკლებად დაგჭირდეს. პარამეტრების ფაილის დანარჩენი ნაწილი განხილულია Project Zomboid-ის სერვერის პარამეტრებში.

რა სად ცხოვრობს#

ყველაფერი, რაც გამოყოფილმა სერვერმა იცის, მის Zomboid საქაღალდეშია, და ყოველი ფაილი იმ სერვერის სახელს ატარებს, რომელიც -servername-ით გადაეცემა (ნაგულისხმევად servertest):

code
Zomboid/  Server/    servertest.ini                  server options, mods, ResetID    servertest_SandboxVars.lua      world rules    servertest_spawnregions.lua     where new characters appear  db/    servertest.db                   accounts, whitelist, access levels, bans  Saves/Multiplayer/servertest/     the world as played    map_<x>_<y>.bin                 one file per explored chunk    players.db                      characters: skills, inventory, position    vehicles.db                     vehicles in the world    map_meta.bin                    safehouses, factions and other world metadata    map_t.bin                       the world clock    map_sand.bin                    the sandbox options this world was created with  backups/                          the server's own zipped backups

save-ის საქაღალდეში ფაილების ზუსტი ნაკრები build-ებს შორის განსხვავდება, და აქ ჩამოთვლილზე მეტს დაინახავ - ზომბების პოპულაციის ფაილებს თითო cell-ზე და სხვადასხვა ცხრილს. მნიშვნელოვანია სამი კატეგორია:

რასადგადაურჩება სამყაროს wipe-ს?
ანგარიშები, პაროლები, წვდომის დონეები, whitelist, ბანებიdb/<servername>.dbდიახ, თუ არ წაშლი
პერსონაჟებიplayers.db save-ის საქაღალდეშიმხოლოდ თუ ამ ფაილს შეინარჩუნებ
სამყარო: შენობები, ნადავლი, ზომბები, მოთამაშეების ნაგებობებიchunk ფაილები save-ის საქაღალდეშიარა
სერვერისა და sandbox-ის პარამეტრებიServer/დიახ

ეს Build 41-ის მულტიპლეერის განლაგებაა, სადაც პერსონაჟები სერვერზე ინახება. Build 42-მა რუკის შიდა გეომეტრია და save-ის ფორმატი შეცვალა, დეველოპერებმა კი თქვეს, რომ Build 41-ის save-ები მასზე არ გადავა - ამიტომ სერვერის მათ შორის გადატანა ახალი დასაწყისია, რაც არ უნდა შეინარჩუნო.

შლისშლისშლის ყველასშლის ზოგსservertest.dbანგარიშები და ბანებისრული wipeრუკის რესეტინაწილობრივი რესეტიplayers.dbპერსონაჟებიchunk ფაილებიგამოკვლეული სამყარო
რას შლის რესეტის თითოეული სახე

ნებისმიერ რესეტამდე#

ყოველი რესეტი ერთნაირად იწყება. ეს ნაბიჯები ამ რიგით გააკეთე, ყოველ ჯერზე.

  1. გამოაცხადე. დაასახელე თარიღი და თქვი, რა სახის რესეტია. "რუკის რესეტი, პერსონაჟები რჩება" და "სრული wipe" სრულიად განსხვავებულ რეაქციას იწვევს, და მოთამაშეები, რომლებსაც უთხრეს, შესაბამისად გეგმავენ.
  2. სუფთად გააჩერე სერვერი. /quit კონსოლიდან ან პანელის Stop. სუფთა გაჩერება სამყაროს ჩაწერს. მოკლული პროცესი ბოლო წუთებს შეუნახავს ტოვებს და შეიძლება chunk ნახევრად ჩაწერილი დატოვოს, რომელსაც შემდეგ ფრთხილად შეინახავ backup-ში.
  3. გააკეთე მთელი `Zomboid` საქაღალდის backup. არა მხოლოდ save-ის. პარამეტრები, მონაცემთა ბაზა და save ერთად ერთადერთი ასლია, რომელიც ზუსტად იმას აღადგენს, რაც გქონდა.
  4. ეს backup სერვერის დისკის გარდა სხვაგან შეინახე. Zomboid-ის საკუთარი zip backup-ები Zomboid/backups/-ში იმის გვერდით ზის, რასაც იცავს. RE:NODE-ზე backup-ები მანქანის გარეთ ინახება და მათი როტაციისგან ჩაკეტვა შეიძლება, რაც სწორედ ის არის, რაც სეზონის ბოლო snapshot-ისთვის გინდა.

სრული wipe: ახალი სამყარო, ახალი პერსონაჟები#

სრული wipe ყველაზე მარტივია და სეზონის ბოლოს ყველაზე ხშირი.

  1. გააჩერე სერვერი და გააკეთე backup.
  2. წაშალე Zomboid/Saves/Multiplayer/<servername>/.
  3. გახსენი <servername>.ini და ResetID ერთით გაზარდე.
  4. შეცვალე sandbox-ის ნებისმიერი ოფცია, რომელიც ახალი სეზონისთვის გინდა (იხილე ქვემოთ - ზოგი მათგანი ისედაც მხოლოდ ახალ სამყაროზე მოქმედებს).
  5. გაუშვი სერვერი. სამყარო მოთამაშეების კვლევასთან ერთად გენერირდება, spawn-ის რეგიონებიდან დაწყებული.
servertest.ini
ResetID=485729113

მნიშვნელობა უბრალოდ რიცხვია. მთავარია, რომ შეიცვალოს. კლიენტებს ახსოვთ რაღაცეები სერვერებზე, რომლებსაც შეუერთდნენ, ახალი ResetID კი მათ ეუბნება, რომ სამყარო, რომელიც იცოდნენ, აღარ არსებობს, რაც ხელახლა შემოსვლისას მოძველებული ქეშირებული მონაცემების უცნაურ ქცევას აცილებს.

ანგარიშები რჩება, რადგან ისინი მონაცემთა ბაზაში ცხოვრობს. ყველა იმავე მომხმარებლის სახელითა და პაროლით შედის, whitelist ისევ მოქმედებს, ბანები ისევ მოქმედებს, მოდერატორები კი წვდომის დონეს ინარჩუნებენ. თუ ახალი სიაც გინდა - ახალი საზოგადოება, ან სერვერი, რომელიც ღია იყო და კერძო ხდება - წაშალე db/<servername>.db-იც. ეს ყველა ანგარიშს შლის, admin-ის ჩათვლით, ამიტომ შემდეგი გაშვებისთვის ადმინის პაროლი ხელთ გქონდეს; RE:NODE-ზე ადმინის პაროლი თითოეული სერვერისთვის გენერირდება და მის დანარჩენ მონაცემებთან ერთად ჩანს.

რუკის რესეტი: ახალი სამყარო, იგივე პერსონაჟები#

რუკის რესეტი გაძლევს ახალ, სრულად ნადავლით სავსე სამყაროს, სადაც ყველა ზომბი დაბრუნებულია, მოთამაშეები კი პერსონაჟებს ინარჩუნებენ - უნარებს, თვისებებს, ნასწავლ რეცეპტებს და ყველაფერს, რაც თან აქვთ. ის დიდი ხნის სერვერს ერგება, სადაც რუკა გაძარცვულია, მაგრამ არავის უნდა დურგლობის ორი თვის დონეების დაკარგვა.

  1. გააჩერე სერვერი და გააკეთე backup.
  2. save-ის საქაღალდეში შეინარჩუნე players.db. vehicles.db-ზე გადაწყვიტე (ქვემოთ).
  3. წაშალე save-ის საქაღალდეში ყველაფერი დანარჩენი.
  4. გაუშვი სერვერი.

პერსონაჟები ძველი სამყაროს პოზიციით იტვირთება, რაც ნიშნავს, რომ ზოგი იქ შევა, სადაც შენობას ადრე მეორე სართული ჰქონდა, ან შენობაში, რომელიც ახლა ჩაკეტილია და ზომბებით სავსე. ამის მოსაგვარებლად ორი გზაა:

  • უთხარი მოთამაშეებს, შემოვიდნენ, როცა მეგობრები ახლოს არიან, და ცოტა ქაოსი რესეტის ნაწილად მიიღე.
  • რესეტამდე სთხოვე ყველას, ღია ადგილზე გადავიდნენ - მინდორზე, გზაზე - და იქ გამოვიდნენ.

მათი ბაზები, რა თქმა უნდა, გაქრა, მათში შენახულ ყველა ნივთთან ერთად. გადარჩება მხოლოდ ის, რაც პერსონაჟს თან აქვს. პოპულარული თავაზიანობაა რესეტის ერთი კვირით ადრე გამოცხადება, რომ ხალხმა ჩანთაში ჩაალაგოს ის, რაც უყვარს.

vehicles.db სამყაროს ყველა ტრანსპორტს ინახავს. მისი შენარჩუნება მაშინ, როცა ამ ტრანსპორტის ქვეშ chunk-ებს შლი, ისეთი კომბინაციაა, რისთვისაც თამაში დაპროექტებული არ არის. თუ კონკრეტული მიზეზი არ გაქვს, რუკასთან ერთად წაშალე და ტრანსპორტი თავიდან გაჩნდეს.

map_meta.bin safehouse-ების claim-ებს ინახავს. რუკის რესეტისას შენობები, რომლებსაც ისინი მიმართავენ, ასევე ნულდება, ამიტომ წაშალე; თორემ მოთამაშეებს ახალი ზომბებითა და ნადავლით სავსე შენობებზე claim-ები ექნებათ, რაც საუკეთესო შემთხვევაში დამაბნეველია.

ნაწილობრივი რესეტი: შეავსე ქალაქები, შეინარჩუნე ბაზები#

ნაწილობრივი რესეტი ის არის, რაც დიდი ხნის სერვერების უმეტესობას საბოლოოდ სჭირდება. გაძარცვული ქალაქები ნადავლითა და ზომბებით ბრუნდება, მოთამაშეების ბაზები და მათი შემოგარენი კი ზუსტად ისე რჩება, როგორც არის.

ეს მუშაობს, რადგან სამყარო chunk ფაილებში ინახება, თითო ყოველ გამოკვლეულ chunk-ზე, chunk-ის კოორდინატებით დასახელებული. წაშალე chunk ფაილი და სერვერი რუკის ამ ნაწილს თავდაპირველი რუკის მონაცემებიდან ხელახლა შექმნის, როცა ვინმე შემდეგ ჯერზე ახლოს მივა: ახალი ნადავლი, ახალი ზომბები, დახურული კარები, მთელი ფანჯრები. შეინარჩუნე chunk ფაილი და სამყაროს ეს ნაწილი უცვლელია.

Build 41-ში chunk 10-ზე 10 tile-ია, ამიტომ ფაილი map_1180_1020.bin ფარავს tile-ებს x 11800-11809, y 10200-10209. ბაზის დასაცავად:

  1. გაიგე ბაზის tile-ების კოორდინატები. ადმინს თამაშში მათი წაკითხვა შეუძლია; vanilla სამყაროს საზოგადოების ვებ-რუკებიც აჩვენებს კოორდინატებს.
  2. გამოთვალე chunk-ის კოორდინატების დიაპაზონი, რომელიც ბაზას და რამდენიმე chunk-ის მარაგს ფარავს, tile-ის კოორდინატების 10-ზე გაყოფით.
  3. გააჩერე სერვერი და გააკეთე backup.
  4. წაშალე ყველა map_<x>_<y>.bin დაცული დიაპაზონების გარეთ. შეინარჩუნე players.db, vehicles.db და map_meta.bin.
  5. გაუშვი სერვერი და ეწვიე რესეტირებულ ქალაქს და დაცულ ბაზას, რომ ორივე შეამოწმო.

ამის ხელით გაკეთება ორ-სამ ბაზაზე მეტისთვის შეცდომებით სავსეა. ადმინების უმეტესობა პატარა სკრიპტს წერს ან ამისთვის შექმნილ საზოგადოების ერთ-ერთ ხელსაწყოს იყენებს, რომელიც დაცული მართკუთხედების სიას კითხულობს - ხშირად safehouse-ების სიიდან აღებულს - და ყველაფერ დანარჩენს შლის. რაც არ უნდა შლიდეს, ჯერ ასლზე გაუშვი და შედეგს შეხედე.

ორი შენიშვნა. რესეტის ზონაში დაყენებულმა ტრანსპორტმა შეიძლება უცნაურად მოიქცეს, როცა მისი chunk ხელახლა შეიქმნება; სთხოვე მოთამაშეებს, ტრანსპორტი ჯერ სახლში მიიყვანონ. და Build 42-ში chunk-ის ზომა და ფაილების სახელდება შეიცვალა, ამიტომ Build 41-ის კოორდინატებისთვის დაწერილი სკრიპტი Build 42-ის სერვერზე არასწორია - სანამ რომელიმე არითმეტიკას ენდობი, ამ გზამკვლევისას ჩათვლით, შენს build-ზე ფაილები შეამოწმე.

პარამეტრები, რომლებსაც ახალი სამყარო სჭირდება#

sandbox-ის ყველა ოფცია არსებულ სამყაროზე არ მოქმედებს. სამყარო ინახავს sandbox-ის პარამეტრებს, რომლითაც შეიქმნა - სწორედ ეს არის map_sand.bin - და რამდენიმე ოფცია ერთხელ მოქმედებს, შექმნისას, ან სამყაროს დაწყებიდან გასულ დროზეა მიბმული:

  • დაწყების თარიღი და დრო - StartYear, StartMonth, StartDay, StartTime.
  • კომუნალური სერვისების გათიშვა - WaterShut და ElecShut სამყაროს დაწყებიდან ითვლის, ამიტომ მოგვიანებით შეცვლა უკუთვლას თავიდან არ იწყებს.
  • რუკის არჩევანი - Map-ის რიგი და რუკის მოდები, რომლებიც წყვეტს, რა გეოგრაფიიდან გენერირდება chunk-ები.
  • spawn-ის რეგიონები - რომელ ქალაქებში შეუძლიათ ახალ პერსონაჟებს დაწყება.

სხვა ოფციები, როგორიცაა ზომბების პოპულაცია და respawn, ნადავლის იშვიათობა და XP-ის მამრავლები, ჩვეულებრივ არსებულ სამყაროზეც შეიძლება შეიცვალოს - თამაშის ადმინის პანელის sandbox ოფციებით ან Lua ფაილის რედაქტირებითა და გადატვირთვით. ოფციების სრული სია არის Project Zomboid-ის SandboxVars-ის ახსნაში.

რუკის მოდები ცალკე წესს იმსახურებს. არსებულ სამყაროზე რუკის მოდის დამატება ნორმალურია; ახალი ტერიტორია მაშინ გენერირდება, როცა ვინმე მასში პირველად შევა. ერთის მოშორება, ან Map-ის ისე გადალაგება, რომ გამოკვლეულ ტერიტორიაზე სხვა რუკამ გაიმარჯვოს, ტოვებს chunk-ებს, რომლებიც მიმართავს რუკის მონაცემებს, რაც სერვერს აღარ აქვს. ეს რესეტია, ყოველ შემთხვევაში დაზარალებული ტერიტორიისა. Project Zomboid-ის სერვერის მოდები ფარავს Map ხაზს და ჩატვირთვის რიგს.

soft reset ოფცია და რატომ უნდა იყო მასთან ფრთხილად#

Build 41-ს აქვს გაშვების ოფცია -Dsoftreset, რომელიც სერვერის მხარეს სამყაროს ობიექტების რესეტს ატარებს პერსონაჟების შენარჩუნებით. ეს ისეთი ფუნქციაა, რომელიც ძველ ფორუმის თემებსა და patch notes-ში ჩნდება და არა დოკუმენტაციაში, და მისი ზუსტი ქცევა - რას შლის, რას ინარჩუნებს და ერგება თუ არა მოდებიან სამყაროს - იცვლებოდა. თუ ცდა გინდა, ჯერ სერვერი დააკოპირე, ასლზე გაუშვი და შედეგს შეხედე, სანამ ნამდვილს მიუახლოვდები. სერვერების უმეტესობისთვის ზემოთ აღწერილი ფაილებზე დაფუძნებული რესეტები უფრო პროგნოზირებადია, რადგან ზუსტად ხედავ, რა მოაშორე.

როგორ დაგჭირდეს ნაკლები რესეტი#

რესეტები არსებობს, რადგან რუკა ილევა: ნადავლი წაღებულია, ზომბები გაწმენდილია, სამყარო ჩუმდება. sandbox-ის რამდენიმე ოფცია ამას ანელებს, ასე რომ სერვერი რესეტებს შორის უფრო დიდხანს ძლებს.

ოფციაეფექტი
LootRespawnკონტეინერები განრიგით ივსება. ნაგულისხმევად გამორთულია
SeenHoursPreventLootRespawnკონტეინერები, რომლებშიც მოთამაშეებმა ახლახან ჩაიხედეს, არ ივსება
ConstructionPreventsLootRespawnტერიტორიები მოთამაშეების ნაგებობებით არ ივსება, რაც ბაზებს იცავს
ZombieConfig.RespawnHoursზომბები ბრუნდებიან cell-ებში, რომლებიც დიდი ხანია არავის უნახავს
ZombieConfig.RespawnMultiplierრამდენი ბრუნდება

ნადავლის respawn ნაგებობების დაცვით ფაქტობრივად ნელი, ავტომატური ნაწილობრივი რესეტია. ის საჯარო სერვერებს ერგება, სადაც მოთამაშეები მოდიან და მიდიან. მეგობრების სერვერისთვის, რომელსაც მოსწონს გამოყენებული სამყაროს შეგრძნება, ის რაღაცას აკლებს, და რამდენიმე თვეში ერთხელ რესეტი უკეთესი რიტმია.

პრობლემების მოგვარება#

რუკის რესეტის შემდეგ მოთამაშეებმა პერსონაჟები დაკარგეს. players.db წაიშალა, ან სერვერი სხვა -servername-ით გაეშვა და სხვა save-ის საქაღალდე ჩატვირთა.

პერსონაჟები შენარჩუნდა, მაგრამ ძველი სამყაროს ბაზები დაბრუნდა. ფაილების წაშლისას სერვერი მუშაობდა და მეხსიერებაში არსებული chunk-ები უკან ჩაწერა. ჯერ გააჩერე და გაიმეორე.

სრული wipe-ის შემდეგ ზოგი მოთამაშე ვერ შემოდის. მათ ძველი სამყაროს მოძველებული კლიენტის მონაცემები აქვთ. დარწმუნდი, რომ ResetID შეიცვალა, და სთხოვე თამაში გადატვირთონ.

ყველას ხელახლა რეგისტრაცია მოუწია. db/<servername>.db save-თან ერთად წაიშალა. აღადგინე backup-იდან, თუ ეს არ გინდოდა.

დაცულმა ბაზამ ბოსტანი და ღობე დაკარგა. მარაგი მეტისმეტად პატარა იყო. აღადგინე ეს chunk ფაილები backup-იდან; ეს ერთ-ერთი მიზეზია, რის გამოც მას აკეთებ.

რუკის მოდის ცვლილების შემდეგ სამყარო არ იტვირთება. რუკის მოდი მოაშორეს სამყაროს, რომელშიც მისი ტერიტორია გამოკვლეული იყო. დააბრუნე, ან დაზარალებული chunk-ები გადატვირთე.

სერვერი sandbox-ის ახალი პარამეტრებით არ ეშვება. შეცდომა Lua ფაილში. კონსოლი ხაზს აჩვენებს. შეადარე სერვერის მიერ გენერირებულ ფაილს, ან წინა აღადგინე.

FAQ#

wipe მოთამაშეების ანგარიშებს შლის?

არა. ანგარიშები, პაროლები, წვდომის დონეები, whitelist და ბანები Zomboid/db/<servername>.db-ში ცხოვრობს და არა save-ში. save-ის წაშლა მათ ხელს არ ახლებს. მონაცემთა ბაზაც მხოლოდ მაშინ წაშალე, თუ გინდა, რომ ყველამ ხელახლა დარეგისტრირდეს.

შეუძლიათ მოთამაშეებს უნარების შენარჩუნება რუკის რესეტისას?

დიახ, Build 41-ის მულტიპლეერზე. პერსონაჟები save-ის საქაღალდეში players.db-ში ინახება. შეინარჩუნე ეს ფაილი, წაშალე save-ის დანარჩენი ნაწილი და პერსონაჟები უნარებითა და თან ნატარები ნივთებით ახალ სამყაროში დაბრუნდებიან.

რას აკეთებს ResetID?

ის კლიენტებისთვის სამყაროს იდენტიფიცირებს. მისი შეცვლა მათ ეუბნება, რომ სამყარო, რომელიც ახსოვთ, აღარ არსებობს, რაც wipe-ის შემდეგ მოძველებული მონაცემების პრობლემებს აცილებს. გაზარდე ყოველ ჯერზე, როცა ახალ სამყაროს ქმნი.

როგორ გადავტვირთო მხოლოდ გაძარცვული ქალაქები?

წაშალე chunk ფაილები მოთამაშეების ბაზების ირგვლივ დაცული ტერიტორიების გარეთ, players.db-ის, vehicles.db-ისა და map_meta.bin-ის შენარჩუნებით. chunk-ები ვიზიტისას თავდაპირველი რუკიდან ხელახლა გენერირდება. გამოიყენე სკრიპტი ან ხელსაწყო, ასლზე გატესტე და ფართო მარაგები დატოვე.

sandbox-ის პარამეტრების შესაცვლელად რესეტი მჭირდება?

მხოლოდ სამყაროს შექმნაზე მიბმული ოფციებისთვის, როგორიცაა დაწყების თარიღი, კომუნალური სერვისების გათიშვის დრო, რუკების სია და spawn-ის რეგიონები. სხვა ოფციების უმეტესობა - ზომბების პოპულაცია, respawn, ნადავლი, XP - არსებულ სამყაროზეც შეიძლება შეიცვალოს.

შემიძლია Build 41-ის სამყარო Build 42-ზე გადავიტანო?

არა. save-ის ფორმატი და რუკის გეომეტრია შეიცვალა, და Build 41-ის სამყაროები Build 42-ზე არ იტვირთება. სერვერის მათ შორის გადატანა ახალი სამყაროა, და ის სეზონის ცვლილებად უნდა დაგეგმო.


კომენტარები

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

0/2000