RE:NODE

Valheim-ის სერვერის სამყაროს თავიდან დაწყება პერსონაჟების შენარჩუნებით

ავტორი RE:NODE-ის გუნდი
11 წუთის საკითხავი


ახალი Valheim სამყაროს დასაწყებად არაფრის წაშლა არ გჭირდება და პერსონაჟს ამით ვერ დაკარგავ. პერსონაჟები თითოეული მოთამაშის საკუთარ კომპიუტერზე ცხოვრობენ; სერვერი მხოლოდ სამყაროს ინახავს. შეცვალე -world-ის სახელი ისეთზე, რომელიც ჯერ არ არსებობს, გადატვირთე და სერვერი ძველის გვერდით ახალ სამყაროს დააგენერირებს. ყველა იმავე პერსონაჟით შემოდის, იმავე ინვენტარითა და იმავე უნარებით, და დგას სამსხვერპლო ქვებთან რუკაზე, რომელიც ჯერ არავის შეუსწავლია. ერთადერთი ნამდვილი სამუშაო ის არის, რომ გადაწყვიტო, რა უყო ძველ სამყაროს - სწორად დაარქივე, რადგან "იქ აღარასოდეს დავბრუნდებით" დაახლოებით ერთ თვეს გრძელდება - და ჯგუფში შეთანხმდე, მისასალმებელია თუ არა ვეტერანი პერსონაჟები ახალში.

სად ცხოვრობენ სინამდვილეში სამყაროები და პერსონაჟები#

რესეტთან დაკავშირებული დაბნეულობის უმეტესობა იმ ვარაუდიდან მოდის, რომ სერვერი მოთამაშეებს ინახავს. ასე არ არის. Valheim-ის dedicated სერვერი ინახავს სამყაროებს და სამ სიის ფაილს, და სხვა არაფერს იმ ადამიანების შესახებ, ვინც მას უკავშირდება.

რასად ცხოვრობსფაილები
სამყაროსერვერზე, worlds_local-შიName.db, Name.fwl
წინა შენახვა და ავტომატური backup-ებისერვერზე, სამყაროს გვერდითName.db.old, Name_backup_auto-...
ადმინების, ბანების და დაშვებულების სიებისერვერზე, შენახვის საქაღალდეშიadminlist.txt, bannedlist.txt, permittedlist.txt
პერსონაჟებითითოეული მოთამაშის კომპიუტერზეcharacters_local/<name>.fch

Windows-ზე მოთამაშის პერსონაჟები აქ არის:

code
%USERPROFILE%\AppData\LocalLow\IronGate\Valheim\characters_local\

Steam Cloud-ში შენახული პერსონაჟი ამის ნაცვლად characters საქაღალდეშია და მას Steam ასინქრონებს. ორივე შემთხვევაში სერვერი ფაილს ვერასოდეს ხედავს; კლიენტი პერსონაჟის მდგომარეობას დაკავშირებისას აგზავნის. სწორედ ამიტომ ვერ ეხება რესეტი პერსონაჟებს - და, როგორც ქვემოთ ვნახავთ, ამიტომვე ვერ შეუშლის სერვერი ხელს მოთამაშეს, ახალ სამყაროში სრულად აღჭურვილი პერსონაჟი შემოიყვანოს. Valheim-ის შენახვებისა და ფაილების მდებარეობა ორივე ოპერაციული სისტემის ყველა გზას შეიცავს.

რა მიაქვს პერსონაჟს ახალ სამყაროში#

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

გადადისარ გადადის
ინვენტარი და ჩაცმული აღჭურვილობაშენი შესწავლილი რუკა (ინახება სამყაროს მიხედვით)
უნარები და უნარების დონეებისაწოლის spawn-ის წერტილი (ინახება სამყაროს მიხედვით)
ცნობილი რეცეპტები და აღმოჩენილი მასალებიboss-ების მოკვლა, როგორც სამყაროს პროგრესი (global keys)
გარეგნობა, წვერი და თმაშენობები, ზარდახშები და ყველაფერი მათში
არჩეული Forsaken ძალაპორტალები და მათი ტეგები
საჭმელი და სტატუსის ეფექტები გასვლის მომენტშივაჭრის მარაგი, რომელიც სამყაროს პროგრესით იხსნება

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

global keys-ის ხაზი არის ის, რაც თამაშს ცვლის. boss-ების მოკვლა სერვერზე სამყაროს მდგომარეობაა - ერთი მოკვლა ყველასთვის ხსნის რაღაცებს, როგორც boss-ების პროგრესი საერთო სერვერებზე ხსნის. ახალი სამყარო keys-ის გარეშე იწყება, ამიტომ თავდასხმები, რომლებიც სამყაროს პროგრესზეა დამოკიდებული, და Haldor-ის მოგვიანებითი მარაგი მასთან ერთად ნულდება, თუმცა თავად მოთამაშეებს ყველა boss მოკლული ჰყავთ. თუ შენი სერვერი -setkey playerevents-ით მუშაობს, თავდასხმები ამის ნაცვლად თითოეული მოთამაშის საკუთარი პროგრესიდან ირჩევა, ეს პროგრესი კი პერსონაჟს ეკუთვნის, ამიტომ ვეტერანს ახალ სამყაროზე შეიძლება შეხვდეს თავდასხმები, რომლებიც ბევრად სცდება იმას, რასაც ახალმა სამყარომ მიაღწია.

ახალი პერსონაჟები თუ გადატანა: ჯერ გადაწყვიტე#

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

ჩვეულებრივი ვარიანტები:

  • ყველა ახალ პერსონაჟს ქმნის. ყველაზე სუფთა თავიდან დაწყება. სერვერზე არაფერი ჯდება; თითოეული მოთამაშე უბრალოდ ქმნის პერსონაჟს მენიუში. ძველი პერსონაჟები მათ კომპიუტერებზე რჩებიან ძველი სამყაროსთვის.
  • ყველაფრის გადატანა. კარგია, როცა რესეტის მიზეზი ტექნიკურია - დაზიანებული სამყარო, seed, რომელიც არავის მოეწონა, მოდების პაკეტის ცვლილება - და არა ხელახლა თამაშის სურვილი. ჯგუფი ძლიერი მოდის და სწრაფად აშენებს.
  • უნარების გადატანა, აღჭურვილობის დატოვება. მოთამაშეები გადასვლამდე ინვენტარს ძველ სამყაროში ზარდახშაში ცლიან. უნარები და რეცეპტები თან მოჰყვება; ახალი სამყარო მაინც ხითა და კაჟით იწყება. ეს მთლიანად ნდობაზეა დამოკიდებული.
  • ახალი სამყარო, ახალი წესები. რესეტი კარგი მომენტია სამყაროს მოდიფიკატორების შესაცვლელად. თუ ვეტერანებს გამოწვევა უნდათ, -preset hard ან -modifier combat veryhard ახალ სამყაროზე მეტს აკეთებს, ვიდრე ხალხისთვის შიშველი დაწყების თხოვნა. სამყაროს მოდიფიკატორები და პრესეტები მათ ჩამოთვლის.

ძველი სამყაროს სწორად დაარქივება#

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

დისკზე სამყარო ორ ფაილზე მეტია. სამყაროსთვის სახელით Midgard ყველა ეს შეაგროვე worlds_local-იდან:

code
Midgard.dbMidgard.fwlMidgard.db.oldMidgard.fwl.oldMidgard_backup_auto-20261011093000.dbMidgard_backup_auto-20261011093000.fwl

.db და .fwl სუფიქსის გარეშე თავად სამყაროა. .old წყვილი წინა შენახვაა, რომელზეც უკან იხევ, თუ ბოლო შენახვა დაზიანებული აღმოჩნდა. backup_auto წყვილები ის როტაციაა, რომელსაც სერვერი -backups-ით ინახავს. ამ სახელების დროის ნიშნულის ზუსტი ფორმატი ვერსიებს შორის იცვლებოდა; ამოიცანი ისინი დასაწყისში სამყაროს სახელით.

  1. სერვერი სუფთად გააჩერე და დაელოდე World saved-ს და პროცესის დახურვას. მუშაობისას დაკოპირებული სამყარო შეიძლება ჩაწერის შუაში იყოს.
  2. გააკეთე backup პანელიდან, თუ შენს ჰოსტს აქვს, და დაბლოკე, თუ შესაძლებელია, რომ როტაციამ ის ვერასოდეს წაშალოს.
  3. ჩამოტვირთე ზემოთ ჩამოთვლილი ფაილები SFTP-ით ან ფაილების მენეჯერით და შეინახე სადმე, რაც სერვერი არ არის: შენს კომპიუტერზე, საერთო დისკზე, ობიექტურ საცავში. backup-ები და სამყაროს დაზიანება ხსნის, რატომ არ არის backup ის, რაც სამყაროს იმავე დისკზეა.
  4. ჩაიწერე seed. აირჩიე სამყარო თამაშის სამყაროების სიაში ნებისმიერ კომპიუტერზე, სადაც ფაილებია, და seed გამოჩნდება. ჩაწერე ის არქივის ფაილის სახელში ან მის გვერდით ჩანაწერში.
  5. დატოვე ფაილები, სადაც არიან, ან გადაიტანე ქვესაქაღალდეში, მაგალითად worlds_local/archive/. სერვერი მხოლოდ იმ სამყაროს ტვირთავს, რომელსაც -world ასახელებს, ამიტომ ძველი ფაილები იქ ზიანს არ აყენებს.

RE:NODE-ის სერვერზე backup-ების დაბლოკვა როტაციისგან შეიძლება, ჩამოტვირთვა პანელიდან ხდება და ისინი იმ მანქანის გარეთ ინახება, რომელსაც იცავენ. გაითვალისწინე, რომ სერვერის წაშლა მის backup-ებსაც შლის, დაბლოკილების ჩათვლით - მე-3 ნაბიჯში ჩამოტვირთული ასლი არის ის, რომელიც თავად სერვერს გადაურჩება.

ახალ სამყაროზე გადართვა#

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

bash
# Before./valheim_server.x86_64 -nographics -batchmode -name "Longship Crew" \    -port 2456 -world "Midgard" -password "herring-barrel-42" -crossplay# After: only the world name changes./valheim_server.x86_64 -nographics -batchmode -name "Longship Crew" \    -port 2456 -world "Midgard2" -password "herring-barrel-42" -crossplay

პანელიან ჰოსტზე სამყაროს სახელი Startup ჩანართზე ველია; იქ შეცვალე. შემდეგ:

  1. გაუშვი სერვერი და უყურე ლოგს.
  2. დარწმუნდი, რომ მან ახალი სახელით სამყარო დააგენერირა და ძველი არ ჩატვირთა.
  3. შედი, შეამოწმე, რომ სამსხვერპლო ქვებთან ხარ და რუკა ცარიელია.
  4. უთხარი ჯგუფს. მოთამაშეებს თავის მხრიდან არაფრის გაკეთება არ სჭირდებათ - სერვერის სახელი, მისამართი, პაროლი და პორტი უცვლელია.

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

სამყაროს იმავე სახელის ხელახლა გამოყენება

ზოგ ჯგუფს უნდა, რომ ახალმა სამყარომ ძველი სახელი შეინარჩუნოს, შესაძლოა იმიტომ, რომ სკრიპტები ან backup-ები მას მიმართავს. ეს მუშაობს, ერთი დამატებითი ნაბიჯით: ძველი ფაილები სერვერის გაშვებამდე worlds_local-იდან უნდა გაიტანო, თორემ ის მათ ჩატვირთავს. გადაიტანე ან გადაარქვი სახელი ზემოთ ჩამოთვლილ ყველა ფაილს, .old და backup_auto წყვილების ჩათვლით, მერე გაუშვი. ძველი ავტომატური backup-ების დატოვება იმავე სახელის ახალი სამყაროს გვერდით პირდაპირი მოწვევაა, რომ ვინმემ მოგვიანებით პანიკაში არასწორი აღადგინოს.

ახალი სახელი უფრო უსაფრთხოა, ამიტომაც არის ის ნაგულისხმევი რჩევა.

რატომ არა უბრალოდ -savedir-ის სხვაგან მიმართვა

-savedir მთელ შენახვის საქაღალდეს გადაიტანს, და სამი სიის ფაილი მასში ცხოვრობს. ცარიელი შენახვის საქაღალდით გაშვება ახალ სამყაროს გაძლევს, მაგრამ ასევე ცარიელ adminlist.txt-ს, ცარიელ bannedlist.txt-ს და ცარიელ permittedlist.txt-ს. შენი ადმინები უფლებებს კარგავენ, დაბანილ მოთამაშეებს დაბრუნება შეუძლიათ, ხოლო allow-list სერვერი ყველასთვის ღია ხდება, ვისაც პაროლი აქვს. თუ -savedir-ს მაინც ცვლი, ჯერ სამი სიის ფაილი გადააკოპირე. adminlist-ის, bannedlist-ისა და permittedlist-ის გზამკვლევი მათ ფორმატს განიხილავს.

დაბრუნება ან ორივეს გაშვება#

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

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

როცა რესეტთან ერთად მოდების პაკეტი იცვლება#

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

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

ახალი დაწყების იძულება სერვერის მხარეს შენახული პერსონაჟებით#

თუ გადატანა უნდა აიკრძალოს და არა უბრალოდ არ წაახალისო, პერსონაჟები სერვერს უნდა ეკუთვნოდეს. vanilla Valheim ამას ვერ აკეთებს, მოდები კი - კი. ServerCharacters (Smoothbrain-ისგან, Thunderstore-ზე) ჩვეულებრივი არჩევანია: ის პერსონაჟის მონაცემებს სერვერზე ინახავს, ამიტომ მოთამაშეები იყენებენ პერსონაჟს, რომელიც მხოლოდ იქ არსებობს, და სხვაგან შექმნილს ვერ შემოიყვანენ. ის უნდა დაყენდეს სერვერზეც და ყველა კლიენტზეც, რაც Xbox-ის მოთამაშეებს გამორიცხავს, და ის ცვლის, როგორ მუშაობს backup-ები, რადგან პერსონაჟები ახლა სერვერის ფაილების ნაწილია. მიმდინარე ვერსიისა და დაყენებისთვის მოდის საკუთარი გვერდი წაიკითხე - ის თამაშთან ერთად ახლდება და დეტალები იცვლება.

კერძო ჯგუფების უმეტესობისთვის ეს საჭირო არ არის. საუბარი და ზარდახშა ძველ სამყაროში საქმეს აკეთებს.

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

სერვერმა ძველი სამყარო ჩატვირთა. ახალი სახელი არსებულ ფაილს ემთხვევა, შესაძლოა ადრინდელი ტესტიდან. შეამოწმე ლოგში, რა სახელი ჩატვირთა, და ჩაიხედე worlds_local-ში.

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

ადმინებმა რესეტის შემდეგ უფლებები დაკარგეს. შენახვის საქაღალდე შეიცვალა, ამიტომ adminlist.txt ახალი, ცარიელი ფაილია. ძველი სიის ფაილები გადმოაკოპირე.

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

FAQ#

სამყაროს რესეტი ჩვენს პერსონაჟებს წაშლის?

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

შემიძლია სერვერის იგივე სახელი, პაროლი და IP შევინარჩუნო?

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

boss-ების ძალები გადადის?

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

შემიძლია მხოლოდ შენობები წავშალო და რელიეფი შევინარჩუნო?

vanilla ხელსაწყოებით - არა. შენობებიც და რელიეფის ცვლილებებიც .db-შია. ახალი სამყარო იმავე seed-ზე ერთსა და იმავე ხელუხლებელ რელიეფს მოგცემს, რომელზეც არაფერია აშენებული.

როგორ შევუშალო ხელი ხალხს, რომ გვიანი თამაშის აღჭურვილობა ახალ სამყაროში არ შემოიტანონ?

სთხოვე, ჯერ შეინახონ, ან მოითხოვე ახალი პერსონაჟები. იძულებისთვის სერვერის მხარის პერსონაჟების მოდი სჭირდება, რადგან vanilla სერვერი პერსონაჟის ნებისმიერ ფაილს იღებს.