RE:NODE

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

DayZ სერვერის დაყენება, მოდები და central economy

DayZ სერვერის გაშვება თავიდან ბოლომდე: serverDZ.cfg, პორტები, მოდები და .bikey ფაილები, types.xml და loot economy, გადატვირთვები, persistence და ხშირი შეცდომები.

განახლებულია

13 მკითხველი

DayZ-ს ორი სისტემა აქვს, რომლებსაც ახალბედა ადმინისტრატორები არასწორი თანმიმდევრობით ხვდებიან: მოდები, რომლითაც ყველა იწყებს, და central economy, რომელიც წყვეტს, არის თუ არა რუკაზე რამე ვარგისი საპოვნელი. კარგად მოდირებული სერვერი შეუხებელი economy-ით ცარიელი სერვერია. ორივეს სწორად მოსაწყობად გჭირდება დაახლოებით 6 GB მეხსიერება 40 ადგილიანი სერვერისთვის, სამი UDP პორტი, Steam ანგარიში, რომელსაც თამაში აქვს, და მზაობა, რომ XML ჩაასწორო და გადატვირთო. ეს გზამკვლევი მთელ გზას მოიცავს: ინსტალაცია, serverDZ.cfg, პორტები, მოდები და მათი გასაღებები, economy-ის ფაილები, ადმინისტრირება და შეცდომები, რომლებიც support-ის მოთხოვნებს ავსებს.

რას უშვებ სინამდვილეში#

DayZ-ის სერვერი ცალკე Steam აპლიკაციაა - DayZ Server, app id 223350 - და უმეტეს თამაშებისგან განსხვავებით, ანონიმური SteamCMD შესვლით არ ჩამოიტვირთება. გჭირდება Steam ანგარიში, რომელსაც DayZ აქვს, და SteamCMD პირველად Steam Guard-ის დადასტურებას მოგთხოვს. ჰოსტები, რომლებიც DayZ-ს შენთვის აყენებენ, ზუსტად ამიტომ იყენებენ შენს მონაცემებს. გამოიყენე სათადარიგო ანგარიში, რომელსაც მხოლოდ თამაში აქვს და სხვა ფასეული არაფერი; სერვერის ინსტალაციას იმ ანგარიშთან საქმე არ აქვს, რომლითაც ყიდულობ.

ის, რასაც სერვერი ყუთიდან გაძლევს, იმაზე მწირია, ვიდრე ხალხი ელოდება:

  • ერთი mission საქაღალდე mpmissions-ში, რომელიც ერთდროულად რუკაცაა და economy-ც. Chernarus არის dayzOffline.chernarusplus, Livonia - dayzOffline.enoch, ახალ რუკებს კი საკუთარი საქაღალდეები აქვთ - სახელს ნუ გამოიცნობ, დირექტორია წაიკითხე.
  • კონფიგურაციის ფაილი, serverDZ.cfg, დაახლოებით ორმოცი პარამეტრით.
  • BattlEye, რომელიც ანტიჩიტს, ბანებს და დისტანციურ ადმინისტრირებას უზრუნველყოფს.
  • თამაშში ადმინის მენიუ საერთოდ არ არის. არც spectate, არც teleport, არც ნივთების გამოძახება, არც მოთამაშეების სია. ყველა ადმინისტრაციული ინსტრუმენტი, რომელიც DayZ სერვერზე გინახავს, მოდია ან გარე RCon კლიენტი.
  • მუდმივი სამყარო, რომელიც mission-ის ფაილებისგან ცალკე ინახება, ამიტომ economy-ს შეგიძლია ჩაასწორო ბაზების წაშლის გარეშე - უმეტეს შემთხვევაში.

Mission საქაღალდე მთავარი იდეაა. როცა loot-ს ასწორებ, ასწორებ ფაილებს mpmissions/dayzOffline.chernarusplus/-ში, და ეს ფაილები სტარტზე იკითხება. იქ შეტანილი არაფერი ამოქმედდება სერვერის გადატვირთვამდე, ამიტომაა DayZ-ის ადმინისტრირებას ასეთი რიტმი: ჩასწორე, გადატვირთე, შეხედე, ისევ ჩასწორე.

მოთხოვნები და რესურსების მოხმარება#

DayZ თავისი მოთამაშეების რაოდენობისთვის მძიმე სერვერია. ის 225 კვადრატულ კილომეტრიან რუკაზე ახდენს ინფიცირებულების, ცხოველების, ტრანსპორტისა და ნივთების economy-ის სიმულაციას და ძლიერ ეყრდნობა ერთ thread-ს.

მოთამაშეებიRAMCPUშენიშვნები
10-20, vanilla4-6 GB2 ბირთვიკომფორტული; კარგია კერძო ჯგუფისთვის
30-40, vanilla6-8 GB2-3 ბირთვიჩვეულებრივი საჯარო სერვერი
40-60, vanilla8-10 GB3+ ბირთვიზღვარი server FPS-ია და არა მეხსიერება
30-50, ძლიერ მოდირებული10-12 GB3+ ბირთვიExpansion-ის მასშტაბის მოდების სიები, ვაჭრები, AI
  • CPU წყვეტს, როგორ ჩანს სავსე სერვერი. სადევნო მეტრიკა server FPS-ია, რომელიც იწერება, თუ logAverageFps გაქვს დაყენებული. ჯანსაღია 30-ზე მეტი; დაახლოებით 15-ზე დაბლა მოთამაშეები rubber-banding-ს, დესინქრონიზებულ loot-ს და ორჯერ გაღებულ კარებს იტყობინებიან.
  • მეხსიერება მოდების სიასთან ერთად იზრდება გაცილებით სწრაფად, ვიდრე მოთამაშეების რაოდენობასთან ერთად. vanilla 60 ადგილიანი სერვერი ნაკლებს მოიხმარს, ვიდრე 30 ადგილიანი, რომელსაც დიდი Expansion build უჭირავს.
  • დისკი: სერვერის ინსტალაცია დაახლოებით 3 GB-ია და თითოეული მოდი საკუთარს ამატებს. ოცი მოდის სია ადვილად კიდევ 10-15 GB-ია, ამიტომ იწყება DayZ-ის გეგმები იმაზე დიდი დისკით, ვიდრე ასეთი ხნის თამაშისგან ელოდები.
  • ქსელი მოკრძალებულია, ერთ მოთამაშეზე რამდენიმე ასეული კილობაიტი წამში, მაგრამ ის UDP-ია და დაყოვნებისადმი მგრძნობიარე. ზოგადი წესი, რომელიც CPU თუ RAM გეიმ სერვერებისთვის პოსტშია, აქ უფრო მეტად მოქმედებს, ვიდრე უმეტეს თამაშში: ხალხი მეხსიერებას ყიდულობს მაშინ, როცა რეალურად ერთი ბირთვია გადატვირთული.

RE:NODE-ზე DayZ-ის გეგმები 6 GB-დან იწყება სამი პორტის განაწილებით, რაც 40 ადგილიანი vanilla ან მსუბუქად მოდირებული სერვერისთვის სწორი ზომაა. დიდ Expansion სერვერს კიბის ზედა საფეხური სჭირდება.

სერვერის ინსტალაცია და გაშვების ხაზი#

შენს მანქანაზე, SteamCMD ნამდვილი შესვლით:

bash
$ steamcmd +force_install_dir /home/dayz/server +login <steam_account> \    +app_update 223350 validate +quit

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

პარამეტრიდანიშნულება
-config=serverDZ.cfgწასაკითხი კონფიგურაციის ფაილი
-port=2302თამაშის პორტი
-profiles=profilesსად იწერება ლოგები, BattlEye და crash dump-ები
-mod=@CF;@Mod2კლიენტისა და სერვერის მოდები, წერტილ-მძიმით გამოყოფილი, თანმიმდევრობას მნიშვნელობა აქვს
-servermod=@AdminToolმხოლოდ სერვერის მოდები, რომლებიც კლიენტებს არ უნდა ჰქონდეთ
-doLogsჩაწერს script და error ლოგებს
-adminLogჩაწერს .ADM ლოგს მოთამაშეთა აქტივობის შესახებ
-netLogქსელური ტრაფიკის ლოგირება, ერთხელ გამოსადეგია, მუდმივად ხმაურიანია
-freezeCheckჩაწერს ლოგს, თუ სერვერი გაიჭედა
-cpuCount=2რამდენი ბირთვის გამოყენება შეუძლია ძრავას

-profiles დააყენე იქ, სადაც SFTP-ით ან file manager-ით მიგწვდება, რადგან იმ საქაღალდეში ცხოვრობს ყველა პასუხი კითხვაზე "რატომ ქნა ეს". თუ SteamCMD-ს, app id-ებს და validate-სა და ჩვეულებრივ განახლებას შორის განსხვავებას ახალი ხარ, SteamCMD ახსნილი ყველაფერს მოიცავს.

serverDZ.cfg, გასაღები-გასაღებით#

ფაილი key = value; ხაზების სიაა, წერტილ-მძიმეებითურთ, ბოლოში კი mission ბლოკია. ქვემოთ მოცემული მნიშვნელობები Bohemia-ს მაგალითის ფაილშია და გონივრული საწყისი წერტილია და არა რეკომენდაცია.

serverDZ.cfg
hostname = "Chernarus - vanilla, no KOS in trader";password = "";passwordAdmin = "a-long-random-string";maxPlayers = 60;verifySignatures = 2;forceSameBuild = 1;disableVoN = 0;vonCodecQuality = 20;disable3rdPerson = 0;disableCrosshair = 0;serverTime = "SystemTime";serverTimeAcceleration = 12;serverNightTimeAcceleration = 1;serverTimePersistent = 0;loginQueueConcurrentPlayers = 5;loginQueueMaxPlayers = 500;instanceId = 1;storageAutoFix = 1;steamQueryPort = 2305;respawnTime = 5;timeStampFormat = "Short";logAverageFps = 300;logMemory = 300;logPlayers = 300;logFile = "server_console.log";adminLogPlayerHitsOnly = 0;enableDebugMonitor = 0;allowFilePatching = 0;multithreadedReplication = 1;speedhackDetection = 1;class Missions{    class DayZ    {        template = "dayzOffline.chernarusplus";    };};

ისინი, რომლებზეც ფიქრი ღირს და არა გადაწერა:

  • verifySignatures = 2 უარყოფს ნებისმიერ მოდს, რომლის .bikey სერვერის keys საქაღალდეში არ არის. დატოვე 2-ზე. 0-მდე დაწევა ის გზაა, რომლითაც სერვერები სხვის შეცვლილ PBO-ებს უშვებენ.
  • forceSameBuild = 1 უარყოფს კლიენტებს სხვა build-ით. მისი გამორთვა მოძველებულ კლიენტს არ აამუშავებს; უბრალოდ უფრო გვიან და უფრო გაუგებრად ჩავარდება.
  • allowFilePatching = 0 ბლოკავს კლიენტებს, რომლებიც -filePatching-ით არის გაშვებული, და სწორედ ასე მოდის ბევრი შემთხვევითი თაღლითობა. ჩართვა მხოლოდ მოდების დეველოპერებს სჭირდებათ.
  • serverTimeAcceleration თამაშის საათს ამრავლებს. 12 ორსაათიან დღეს იძლევა. serverNightTimeAcceleration ღამით კიდევ ამრავლებს, ამიტომ serverTimeAcceleration = 12 და serverNightTimeAcceleration = 4 გრძელ დღეს და მოკლე ღამეს იძლევა - ეს ნებისმიერ საჯარო სერვერზე ყველაზე ხშირად მოთხოვნილი ცვლილებაა.
  • serverTimePersistent = 1 აკეთებს იმას, რომ სამყაროს საათი გადატვირთვას გადაურჩეს და serverTime-ზე არ განულდეს. დღეში ოთხი გადატვირთვისას და 0-ზე დაყენებისას შენს სერვერს ერთი და იგივე დილა ოთხჯერ აქვს.
  • instanceId არჩევს persistence საქაღალდეს, პირველი instance-ისთვის storage_1-ს. ერთ მანქანაზე მყოფმა ორმა სერვერმა instance id ერთად არ უნდა გამოიყენოს.
  • disableVoN = 0 ინარჩუნებს თამაშისშიდა ხმას. მისი გამორთვა თამაშის ხასიათს უფრო მეტად ცვლის, ვიდრე ფაილის უმეტესი პარამეტრი.

პორტები და დაკავშირება#

პორტიპროტოკოლიდანიშნულება
2302UDPთამაშის ტრაფიკი, მიეთითება -port=-ით
2303-2304UDPდაცულია თამაშის პორტის გვერდით; ჰოსტები მთელ ბლოკს გამოყოფენ
2305UDPSteam query, მიეთითება steamQueryPort-ით
RCon portUDPBattlEye RCon, მიეთითება BEServer_x64.cfg-ში

Query პორტი ისაა, რომელიც ხალხს ხვდება. თამაში მუშაობს, IP-ით უკავშირდები, და სერვერი DayZ Launcher-ის სიაში არასოდეს ჩნდება - ეს steamQueryPort-ის დაბლოკვა ან არასწორი მნიშვნელობაა. ორივე UDP-ია; firewall-ის წესი, რომელიც მხოლოდ TCP-ს ხსნის, აქ არაფერს აკეთებს. გეიმ სერვერის პორტები ახსნილი განმარტავს, რატომ არსებობს query პორტი თამაშის პორტისგან ცალკე და როგორ გამოიყურება თითოეული მარცხი.

მოდირებულ DayZ სერვერზე თითქმის არავინ შედის თამაშისშიდა ბრაუზერიდან. ისინი იყენებენ DayZ Launcher-ს, რომელიც კითხულობს სერვერის მიერ გამოცხადებულ მოდების სიას, ამ Workshop ნივთებს იწერს და თამაშს შესაბამისი -mod= ხაზით უშვებს. სწორედ ამიტომ უნდა იყოს მოდების თანმიმდევრობა და გასაღებები სწორი: launcher კლიენტის მხარეს ავტომატიზებს და ხმამაღლა ჩავარდება, როცა ორი მხარე ერთმანეთს არ ემთხვევა.

პოულობს სერვერსconnectverifySignatures 2key უნდა იყოსDayZ Launcherკითხულობს მოდების სიასQuery port2305 UDPDayZ server2302 UDPBattlEyeხელმოწერის შემოწმებაkeys/ folderთითო .bikey მოდზე
რა უნდა დაემთხვეს, სანამ მოდირებული მოთამაშე შემოვა

მოდები: გასაღებები, თანმიმდევრობა და ორი flag#

Workshop-ის მოდები SteamCMD-ით იტვირთება კლიენტის app id-ზე, 221100-ზე, და არა სერვერისაზე:

bash
$ steamcmd +force_install_dir /home/dayz/server +login <steam_account> \    +workshop_download_item 221100 1559212036 +quit

შემდეგ სამი რამ უნდა მოხდეს, და რომელიმეს გამოტოვება სხვადასხვა დამაბნეველ სიმპტომს იძლევა:

  1. მოდის საქაღალდე, სახელად @SomeMod, სერვერის ძირშია.
  2. მისი keys/*.bikey ფაილი გადაწერილია სერვერის keys საქაღალდეში. თუ ეს გამოტოვე, BattlEye კლიენტებს ჩატვირთვის ეკრანზე ხელმოწერის შეცდომით გააგდებს, თუნდაც დანარჩენი ყველაფერი სწორი იყოს.
  3. საქაღალდე ჩამოთვლილია -mod=-ში, დამოკიდებულებების მიხედვით. ჯერ framework-ები: -mod=@CF;@DayZ-Expansion-Core;@DayZ-Expansion-Bundle. Community Framework (@CF) უამრავი მოდის დამოკიდებულებაა და მათზე ადრე უნდა ჩაიტვირთოს.

-servermod= გამოიყენე ყველაფრისთვის, რაც კლიენტს არ უნდა ჰქონდეს: ადმინის ინსტრუმენტები, loot spawner-ები, სერვერული შესწორებები. -servermod=-ის მოდები launcher-ს არ ეცხადება, ამიტომ მოთამაშეებს მათი ჩამოტვირთვა არ მოეთხოვებათ. სერვერული მოდის შეცდომით -mod=-ში ჩაწერა ყველა შემომსვლელს აიძულებს ჩამოტვირთოს ის, რაც არაფერში სჭირდება.

ორი ჩვევა მთელ სერვერებს გადაარჩენს. პირველი, მოდების სია დააფიქსირე და განაახლე შეგნებულად და არა ავტომატურად - DayZ-ის პატჩი ყველა მოდს აბათილებს, სანამ ავტორი თავიდან არ ააწყობს, და სერვერს, რომელიც პატჩის დღეს თავად ახლდება, პატჩის დღეს ვერავინ შედის. რა ვქნა, როცა მოდის განახლება ტეხავს ღირს წასაკითხად, სანამ დაგჭირდება. მეორე, ყოველი განახლების წინ შეინახე მუშა მოდის საქაღალდის და შენი XML-ის ასლი. Steam Workshop-ის მოდები dedicated სერვერებზე განმარტავს, როგორ იქცევა Workshop-ის ჩამოტვირთვები სერვერის მხარეს სხვადასხვა თამაშში.

types.xml და central economy#

სწორედ ეს ნაწილი წყვეტს, ღირს თუ არა შენს სერვერზე თამაში. Loot შემთხვევითად არ არის მიმოფანტული. Central economy რუკაზე თითოეული ნივთის სამიზნე რაოდენობას ინახავს და მისკენ ავსებს, წესები კი XML-ში ცხოვრობს შენს mission საქაღალდეში.

ფაილირას აკონტროლებს
db/types.xmlყველა ნივთი: რამდენია, რამდენ ხანს ძლებს, რა სიჩქარით ბრუნდება
db/events.xmlტრანსპორტი, ვერტმფრენების ჩამოვარდნა, ინფიცირებულებისა და ცხოველების გაჩენა
db/globals.xmlმსოფლიო ლიმიტები, მაგალითად ZombieMaxCount, და გასუფთავების ტაიმერები
db/messages.xmlდაგეგმილი შეტყობინებები, მათ შორის ის, რომელიც სერვერს ითიშავს
db/economy.xmleconomy-ის რომელი ქვესისტემები იტვირთება საერთოდ
cfgeconomycore.xmlრომელი XML ფაილები იკითხება, შენი საკუთარი ფაილების ჩათვლით
cfgspawnabletypes.xmlრა დანამატებითა და ტვირთით ჩნდება ნივთი
cfgeventspawns.xmlკოორდინატები, რომლებიც ივენთებს შეუძლიათ გამოიყენონ
cfgplayerspawnpoints.xmlსად ჩნდებიან ახალი და ხელახლა დაბადებული მოთამაშეები

types.xml-ის ჩანაწერი ასე გამოიყურება. რიცხვები საილუსტრაციოა - რეალურისთვის წაიკითხე მოყოლილი ფაილი:

db/types.xml
<type name="M4A1">    <nominal>8</nominal>    <lifetime>7200</lifetime>    <restock>1800</restock>    <min>4</min>    <quantmin>-1</quantmin>    <quantmax>-1</quantmax>    <cost>100</cost>    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1"           count_in_player="0" crafted="0" deloot="0"/>    <category name="weapons"/>    <usage name="Military"/>    <value name="Tier4"/></type>

თითოეულ ელემენტს კონკრეტული საქმე აქვს, და ხუთი მათგანი თითქმის ყველაფერს წყვეტს:

  • nominal არის სამიზნე რაოდენობა რუკაზე. min ქვედა ზღვარია: როცა მიმდინარე რაოდენობა მასზე დაეცემა, economy კიდევ ამატებს რიგში.
  • lifetime არის წამები, რამდენსაც შეუხებელი ნივთი გასუფთავებამდე ძლებს. აღება და დადება საათს ნულიდან იწყებს.
  • restock არის დაყოვნება, სანამ economy-ს ნებადართული ექნება წაღებულის ჩანაცვლება. 0 ნიშნავს, რომ როგორც კი შეძლებს.
  • cost არის გაჩენის პრიორიტეტი 0-დან 100-მდე - რომელ ვარგის ნივთს ერგება ადგილი.
  • usage და value წყვეტს, სად შეიძლება ნივთი გაჩნდეს: usage არის შენობის ტიპი (Military, Police, Medic, Farm, Industrial, Town, Village, Hunting), value - loot-ის დონე, სადაც უფრო მაღალი დონეები სანაპიროდან უფრო შორსაა. ნივთი usage-ისა და value-ის გარეშე არსად ჩნდება, და ეს DayZ-ის ადმინისტრირებაში ყველაზე გავრცელებული საკუთარი თავის დაზიანებაა.
  • flags ატრიბუტები წყვეტს, რა ითვლება nominal-ში. count_in_cargo="1" ნიშნავს, რომ კონტეინერებში მყოფი ნივთებიც ითვლება, ამიტომ ნივთების დამგროვებელ კლანს შეუძლია რუკა ამ ნივთისგან დაცალოს ისე, რომ არაფერი გაფუჭებულა.

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

მოდებს, რომლებიც ნივთებს ამატებენ, საკუთარი ჩანაწერებიც სჭირდებათ. იარაღის მოდი, რომელიც თითქოს არაფერს აკეთებს, თითქმის ყოველთვის ისაა, რომლის ნივთებიც economy-ში არასოდეს დარეგისტრირებულა: მოდი ჩატვირთულია, იარაღები თამაშის ფაილებშია და არავინ ჩააჩენს. სწორი გამოსავალი მოდის ჩანაწერების vanilla types.xml-ში ჩაკოპირება არ არის, რადგან თამაშის განახლება მას გადააწერს. ამის ნაცვლად cfgeconomycore.xml-ში დაარეგისტრირე საკუთარი საქაღალდე:

cfgeconomycore.xml
<ce folder="custom">    <file name="mod_types.xml" type="types"/></ce>

ახლა შენი დამატებები ცხოვრობს mpmissions/dayzOffline.chernarusplus/custom/mod_types.xml-ში და პატჩებს გადაურჩება. types.xml და loot economy მთელ სისტემას დეტალურად შლის.

Persistence ამ ყველაფრისგან ცალკეა. მოთამაშეების ბაზები, stash-ები, ტრანსპორტი და პერსონაჟების მონაცემები storage_<instanceId>-ში ცხოვრობს, mission საქაღალდის გვერდით. Economy-ის ჩასწორება მათ არ წაშლის. ამ საქაღალდის წაშლა კი წაშლის - ეს wipe-ია და ერთადერთი საიმედო. ჯერ ასლი შეინახე, და შეინახე სერვერისგან სხვა ადგილას: backup-ები, რომლებიც მართლა აღდგება სწორედ იმიტომ არსებობს, რომ backup, რომელიც არავის აუღდგენია, ჰიპოთეზაა.

ადმინისტრირება: RCon, ლოგები და გადატვირთვები#

ადმინისტრირება არის BattlEye RCon პლუს ადმინის მოდი, რომელიც აირჩიე. passwordAdmin serverDZ.cfg-ში გრძელი და შემთხვევითი უნდა იყოს, თუმცა vanilla მას თითქმის არაფერს აკეთებინებს; RCon-ის პაროლი ცალკეა და ცხოვრობს BEServer_x64.cfg-ში, BattlEye-ის საქაღალდეში შენს profiles დირექტორიაში.

BattlEye-ის საკუთარი ბრძანებების ნაკრები, RCon კლიენტში ან პანელის კონსოლში აკრეფილი, მცირეა:

ბრძანებაეფექტი
playersდაკავშირებული მოთამაშეები მათი ID-ებითა და ping-ით
kick <id> <reason>გაგდება სესიის id-ით
ban <id> <minutes> <reason>დაკავშირებული მოთამაშის დაბანვა, 0 - სამუდამოდ
addBan <GUID> <minutes> <reason>იმის დაბანვა, ვინც დაკავშირებული არ არის
bans / removeBan <n>ბანების სია და მოხსნა
say -1 <message>შეტყობინება ყველასთვის
loadBans / loadEventsBattlEye-ის ფაილების ხელახლა წაკითხვა გადატვირთვის გარეშე
#shutdownსერვერის გაჩერება

ბანები bans.txt-ში BattlEye GUID-ებად ინახება, რომლებიც SteamID-იდან გამოითვლება და SteamID არ არის. ლოგებიდან გადმოწერე და ხელით ნუ გადაიყვან. თუ RCon-ს საერთოდ ხსნი გარეთ, ჯერ წაიკითხე RCON უსაფრთხოდ - პროტოკოლი UDP-ია, პაროლი მთელი ავთენტიფიკაციაა, და DayZ სერვერებს განუწყვეტლივ სკანირებენ.

ლოგები შენს profiles საქაღალდეში სამუშაოს მეორე ნახევარია:

  • server_console.log - ყველაფერი, რაც კონსოლმა დაბეჭდა, და სწორედ აქ ჩნდება შენი XML-ის სტარტის შეცდომები.
  • *.ADM - ადმინის ლოგი: შესვლები, გასვლები, პოზიციები, სიკვდილები, დარტყმები, ვინ ვის და რითი მოკლა. ეს ფაილი იკითხება ბაზაზე თავდასხმის შესახებ ყოველი კამათის შემდეგ.
  • script*.log - script-ის შეცდომები, მოდებისაც.
  • crash_* და *.mdmp - ის, რაც მოდის ავტორს უნდა გაუგზავნო.

DayZ სერვერები გრაფიკით გადაიტვირთება, ჩვეულებრივ ყოველ სამ-ოთხ საათში, რადგან server FPS სესიის განმავლობაში უარესდება და რადგან დაგეგმილი გადატვირთვა კონტროლირებადი შენახვაა. ამის გაკეთება მხოლოდ db/messages.xml-ითაც შეგიძლია, სადაც შეტყობინების ჩანაწერს შეუძლია გამორთვა ატაროს, ხოლო პანელის Schedules ჩანართს cron გამოსახულებით შეუძლია გადატვირთვა და backup ერთად გაუშვას - გადატვირთვის გრაფიკები, რომლებიც გვეხმარება გეტყვის, რომელი ინტერვალი ღირს. RE:NODE-ზე Restart ღილაკი სუფთა გაჩერებაა, watcher-ი შეამჩნევს სერვერს, რომელიც თავისით განუწყვეტლივ იტვირთება, და ციკლში დატოვების ნაცვლად ticket-ს ხსნის, სერვერი კი, რომელიც მეხსიერების ლიმიტს მიაღწევს, swap-ში მიტოვების ნაცვლად ჩერდება და სუფთად გადაიტვირთება.

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

სერვერი მუშაობს, მაგრამ DayZ Launcher-ის სიაში არ არის. Query პორტი. შეამოწმე, რომ steamQueryPort გამოყოფილ UDP პორტს ემთხვევა და მანქანაზე სხვა არავინ იკავებს.

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

"You cannot play/edit this mission; it is dependent on downloadable content that has been deleted." კლიენტის მოდების სია სერვერისას არ ემთხვევა - ჩვეულებრივ მოდი, რომელიც launcher-მა არ ჩამოტვირთა, ან ვერსიების შეუსაბამობა. მოთამაშემ ფაილები launcher-ით შეამოწმოს და არა Steam-ით.

Loot არ შეცვლილა `types.xml`-ის ჩასწორების შემდეგ. ან არ გადაგიტვირთავს, ან ფაილმა ვერ გაიარა parse და economy უკან დაბრუნდა. წაიკითხე server_console.log თავიდან: დაზიანებული XML ფაილი იქ სახელდება იმ ელემენტთან ერთად, რომელმაც გატეხა.

დამატებული მოდის ნივთები არასოდეს ჩნდება. მათ economy-ის ჩანაწერები არ აქვთ, ან აქვთ ჩანაწერები usage-ისა და value-ის გარეშე. იხილე ზემოთ.

ყველაფერი ნელია, როცა სერვერი ივსება. მეხსიერების ყიდვამდე შეამოწმე დალოგილი server FPS. ინფიცირებულების დიდი რაოდენობა, მოდების დიდი სიები და ათობით მუდმივი ტრანსპორტი CPU-ს ხარჯავს და არა RAM-ს.

ბაზები განახლების შემდეგ გაქრა. storage_<instanceId>-ში persistence განულდა ან instance id შეიცვალა. ამ საქაღალდის backup-ის გარეშე აღდგენა არ არსებობს.

სამყაროს საათი ყოველ გადატვირთვაზე განულდება. serverTimePersistent = 0.

FAQ#

შემიძლია DayZ სერვერის გაშვება, თუ თამაში არ მაქვს?

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

რამდენი მოთამაშის დატევა შეუძლია DayZ სერვერს?

maxPlayers 60-ს ბევრად სცდება, მაგრამ პრაქტიკული ზღვარი CPU-ა. უმეტესი საჯარო სერვერი 40-60-ზე მუშაობს და ამაზე მეტზე server FPS-ს კარგავს, განსაკუთრებით მოდების დიდი სიით. DayZ სერვერს იშვიათად ტეხავს მოთამაშეების რაოდენობა; ტეხავს მოდების სია.

ყოველ რამდენიმე საათში უნდა გადავტვირთო?

აუცილებლად არა. სერვერი გააგრძელებს მუშაობას. მაგრამ server FPS გრძელი სესიის განმავლობაში ეცემა, გადატვირთვა სუფთა შენახვაა და მოდებით დახუნძლული სერვერების უმეტესობა მის შემდეგ თვალსაჩინოდ უკეთესია. სამ-ოთხი საათი community-ის ნორმაა; გამოაცხადე db/messages.xml-ით, რომ გადატვირთვამ არავის დააკარგვინოს რეიდი.

loot economy-ის ჩასწორება რუკას წაშლის?

არა. Loot და persistence ცალკეა. types.xml-ისა და economy-ის სხვა ფაილების ჩასწორება ცვლის იმას, რაც შემდეგი გადატვირთვიდან ჩნდება; ბაზები, stash-ები და პერსონაჟები storage_<instanceId>-ში ხელუხლებელია. Wipe ნიშნავს ამ storage საქაღალდის განზრახ წაშლას.

რატომ მუშაობს მოდი ჩემთან და სხვას არა?

მოდი შენ ლოკალურად გაქვს, სერვერი კი მას არ აცხადებს, ან ის -servermod=-შია იქ, სადაც -mod=-ში უნდა იყოს. კლიენტისა და სერვერის მოდები -mod=-ში ეკუთვნის, გასაღებით keys-ში; -servermod= მხოლოდ ნამდვილად სერვერულ მოდებს ეკუთვნის.

სად ვიხედო პირველ რიგში, როცა რამე არასწორადაა?

server_console.log და .ADM ფაილი შენს profiles საქაღალდეში, ამ თანმიმდევრობით. DayZ-ის ადმინისტრირების ნახევარი XML-ია, მეორე ნახევარი კი ლოგის კითხვა, რომელიც გეუბნება, მისი რომელი ხაზი შეგეშალა.


კომენტარები

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

0/2000