เวิร์กโฟลว์
ม็อดเซิร์ฟเวอร์ Vintage Story ทดสอบบนสำเนาโลกก่อน
03
วันอัปเดตอัปเดตม็อดและการตั้งค่าโดยไม่สูญเสียโลก
มีการอัปเดตเกมออกมา และคุณต้องการนำม็อดและโลกของคุณอัปเดตโดยไม่สูญเสียโลก การเปลี่ยนการตั้งค่าเซิร์ฟเวอร์ Vintage Story และการเพิ่มม็อดเป็นการเปลี่ยนแปลงสองอย่างที่สามารถทำให้โลกไม่สามารถโหลดได้ ดังนั้นเวิร์กโฟลว์นี้จะดำเนินการตามลำดับคงที่: คัดลอกเซฟ เปลี่ยนอย่างหนึ่ง เริ่มเซิร์ฟเวอร์และอ่านล็อก จากนั้นเปลี่ยนอีกอย่างหนึ่ง Cascadia Merge จัดการไฟล์และแสดงผลลัพธ์ให้คุณเป็นการ์ด คุณตัดสินใจทุกขั้นตอน และคุณหยุดเซิร์ฟเวอร์ไว้ขณะที่ไฟล์เปลี่ยนแปลง วางแผนที่จะใช้เวลาของคุณในการอ่านดิฟและล็อก ไม่ใช่ในการพิมพ์พาธ และบันทึกเวอร์ชันของม็อดแต่ละตัวก่อนที่คุณจะเปลี่ยนมัน เพื่อให้รายการนั้นทำหน้าที่เป็นบันทึกของคุณในวันอัปเดต
01เปิดโฟลเดอร์ข้อมูล
เลือกโฟลเดอร์ข้อมูลของเซิร์ฟเวอร์เป็นโฟลเดอร์ทำงานของแชทใหม่ ตัวเอเจนต์จะแสดงรายการโฟลเดอร์ด้วย list_dir ดังนั้นคุณสามารถเห็น Saves, Backups และ Mods ก่อนที่จะมีการแตะต้องอะไร บนพีซี Windows ตำแหน่งเริ่มต้นคือโฟลเดอร์ VintagestoryData ภายใต้โฟลเดอร์ AppData\Roaming ของผู้ใช้ เว้นแต่คุณเริ่มเซิร์ฟเวอร์ด้วยพาธข้อมูลอื่น
02คัดลอกเซฟ
เมื่อเซิร์ฟเวอร์หยุดทำงาน ตัวเอเจนต์จะคัดลอกโฟลเดอร์ Saves เข้าไปใน Backups ด้วยสคริปต์สำรองข้อมูลของคุณเอง คุณตรวจสอบโค้ดเอ็กซ์ิตในการ์ด ขอ list_dir ครั้งที่สองของโฟลเดอร์ Backups และยืนยันว่าสำเนาใหม่มีอยู่จริงก่อนที่จะดำเนินการต่อ
03เปลี่ยนอย่างหนึ่ง
แก้ไข serverconfig.json หรือแทนที่ม็อดหนึ่งตัว ไม่ทำทั้งสองอย่างพร้อมกัน ตัวเอเจนต์แสดงดิฟสำหรับการเปลี่ยนแปลงการตั้งค่า และคุณยอมรับหรือปฏิเสธมันในโหมด Ask first ม็อดที่คุณแทนที่ด้วยตนเองจะอยู่ในโฟลเดอร์ Mods เป็นไฟล์ .zip และมียังมีเพียงไฟล์เดียวที่เปลี่ยนแปลงในแต่ละรอบ
04เริ่มและทดสอบ
เริ่มเซิร์ฟเวอร์ด้วยสคริปต์ของคุณเอง ให้ตัวเอเจนต์ค้นหาในล็อกสำหรับม็อดที่ล้มเหลว และเข้าร่วมจากเกม หากมีบางอย่างพัง คุณรู้ว่าการเปลี่ยนแปลงใดที่ทำให้เกิดปัญหา และคุณสามารถย้ายไฟล์นั้นหรือกู้คืนบรรทัดนั้นจากสำเนาที่คุณทำไว้ตั้งแต่ต้น
ตัวอย่าง serverconfig.json
Cascadia Merge · ตรวจสอบรายการม็อด● Ask first
แสดงรายการโฟลเดอร์ Mods และอ่านชื่อและเวอร์ชันจาก modinfo.json ของแต่ละม็อด
- list_dir
Mods/พบ - read_file
Mods/examplemod/modinfo.jsonอ่าน - grep
version Mods/3 การจับคู่ - write_file
mod-list.txtบันทึกแล้ว
serverconfig.json
{
"ServerName": "Friends World",
"Port": 42420,
"MaxClients": 10,
"Password": null,
"AllowPvP": false,
"AdvertiseServer": false
}
นี่คือตัวอย่างของ serverconfig.json ไม่ใช่ไฟล์ที่สมบูรณ์ มีเฉพาะค่าตัวแปรเท่านั้น พอร์ตเกมคือ 42420 (TCP) และการตั้งค่ารหัสผ่านเป็น null หมายถึงไม่ได้ตั้งรหัสผ่าน ดังนั้นให้เพิ่มรหัสผ่านก่อนที่คุณจะเปิดโลกให้กับอินเทอร์เน็ต แก้ไขไฟล์จริงเฉพาะเมื่อเซิร์ฟเวอร์หยุดทำงาน และเก็บสำเนาของคุณไว้ข้างๆ โฟลเดอร์ Saves
จัดการม็อดเซิร์ฟเวอร์ Vintage Story ในสี่ขั้นตอน
ตรวจสอบสิ่งที่ติดตั้ง
เริ่มต้นด้วยการดูก่อนที่คุณจะเปลี่ยนอะไร ตัวเอเจนต์ใช้ list_dir และ glob เพื่อค้นหาโฟลเดอร์ Mods ภายในโฟลเดอร์ข้อมูล, read_file เพื่อเปิด modinfo.json ของแต่ละม็อดที่อยู่ภายในโฟลเดอร์ และ write_file เพื่อบันทึกรายการธรรมดาของชื่อและเวอร์ชันในโฟลเดอร์ทำงานของคุณ หากคุณต้องการความช่วยเหลือเกี่ยวกับม็อดบนเซิร์ฟเวอร์ที่โฮสต์ ให้ตรวจสอบก่อนว่าคุณสามารถเข้าถึงโฟลเดอร์ข้อมูลของมันได้ เพราะตัวเอเจนต์สามารถทำงานเฉพาะไฟล์ที่คุณสามารถเปิดได้ พิมพ์รายการ คุณเปรียบเทียบกับม็อดที่ผู้เล่นของคุณมี เนื่องจากเซิร์ฟเวอร์และผู้เล่นต้องการม็อดและเวอร์ชันเดียวกัน และคุณตัดสินใจว่าจะอัปเดตอะไร ยังไม่มีการเปลี่ยนแปลงใดๆ และคุณมีบันทึกของสิ่งที่ติดตั้งก่อนการอัปเดต ซึ่งช่วยหากคุณต้องยกเลิกขั้นตอนในภายหลัง
คัดลอกเซฟก่อน
โลกของคุณคือไฟล์ .vcdbs ไฟล์เดียวในโฟลเดอร์ Saves ดังนั้นให้คัดลอกโฟลเดอร์นั้นก่อนการอัปเดตเกม การเปลี่ยนแปลงม็อดและการเปลี่ยนแปลงการตั้งค่าทุกครั้ง หยุดเซิร์ฟเวอร์ก่อน ตัวเอเจนต์ใช้ copy_file เพื่อวางไฟล์โลกในโฟลเดอร์ Backups และ Shell รันสคริปต์สำรองข้อมูลของคุณเองและรายงานโค้ดเอ็กซ์ิตจริงในการ์ด สำเนาที่ไม่เคยกู้คืนเป็นเพียงการคาดเดา ดังนั้นให้กู้คืนมันหนึ่งครั้งในโฟลเดอร์สำรอง เปิดมันและตรวจสอบว่าโลกมีอยู่ จากนั้นคุณจึงดำเนินการต่อสู่ส่วนของการทำงานที่เปลี่ยนแปลงไฟล์ โดยมีวิธีกลับที่ปลอดภัยหากการเปลี่ยนแปลงผิดพลาด คุณไม่ลบอะไร และเซฟจะไม่ถูกลบโดยไม่มีการคัดลอก หากโฟลเดอร์มีหลายโลก ให้คัดลอกทั้งโฟลเดอร์ Saves เพื่อให้ไม่พลาดโลกใดเลย
เปลี่ยนการตั้งค่าหรือม็อดหนึ่งอย่าง
ตอนนี้เปลี่ยนสิ่งเดียว เพื่อปรับการตั้งค่าเซิร์ฟเวอร์ Vintage Story ตัวเอเจนต์ใช้ edit_file บน serverconfig.json และแสดงดิฟในโหมด Ask first; เพื่ออัปเดตม็อด คุณวางไฟล์ .zip ใหม่ในโฟลเดอร์ Mods ด้วยตนเอง จากฐานข้อมูลม็อดทางการเท่านั้น หากโลกไม่สามารถโหลดได้หลังจากติดตั้งม็อด การเปลี่ยนแปลงล่าสุดคือผู้ต้องสงสัย และคุณสามารถยกเลิกมันโดยการย้ายไฟล์นั้นออก หยุดที่นี่ คุณไม่เพิ่มม็อดที่สองก่อนที่ม็อดแรกจะถูกทดสอบ เพราะการเปลี่ยนแปลงสองอย่างพร้อมกันซ่อนสาเหตุ Plan only สามารถเขียนขั้นตอนลงไปได้ก่อนโดยไม่รันมัน ซึ่งมีประโยชน์เมื่อคุณต้องการรายการตรวจสอบสำหรับวันอัปเดตที่ผู้ดูแลระบบคนที่สองสามารถอ่านได้
เริ่มเซิร์ฟเวอร์และอ่านล็อก
เริ่มเซิร์ฟเวอร์ด้วยสคริปต์เริ่มของคุณเอง Shell รันมันและแสดงโค้ดเอ็กซ์ิตจริง จากนั้น grep ค้นหาในล็อกเซิร์ฟเวอร์สำหรับคำว่า failed และ error การแก้ปัญหาเซิร์ฟเวอร์เฉพาะเริ่มด้วยล็อกนั้น และการ์ดจะแสดงบรรทัดที่จับคู่ทุกบรรทัดเพื่อให้คุณสามารถอ่านตามลำดับ glob ค้นหาไฟล์ล็อกหากคุณไม่แน่ใจว่าไฟล์ใดเป็นไฟล์ล่าสุด จากนั้นคุณเข้าร่วมจากเกมและเดินไปรอบๆ โลก คุณยอมรับการเปลี่ยนแปลงว่าเป็นเสร็จสิ้นเฉพาะหลังจากที่ล็อกสะอาดและผู้เล่นอีกคนเข้าร่วมแล้ว หากไม่สะอาด คุณย้อนกลับหนึ่งขั้นตอน อ่านข้อผิดพลาดแรกแทนที่จะเป็นข้อผิดพลาดสุดท้าย และกู้คืนสำเนาของเซฟหากโลกเองเสียหาย