NBT Tag به زبان تخصصی

با عرض سلام خدمت شما ماینر گرامی

ضمن نوشتن اولین مطلبم ابتدائاً(ابتداعن) سبک ویکی نوشتن خودم چه اینجا چه ویکی‌پدیا رو‌ خدمتتون عرض کنم؛ من از حداقل عکس استفاده میکنم ولی توضیحات کاملی میدم و ضمن اون برخلاف عادت برخی دوستان سایت به کل از تعداد واژگان و این مزخرفات استفاده نمیکنم.

حالا بریم سراغ NBT تگ

قبل اینکه بخونید بگم که ۹۹.۹ درصد مطالب این صفحه اصن ربطی به داخل بازی نداره و کاملا تخصصی مسائل کدنویسی و این حرفاس اون ۰.۱ درصد دیگه پاراگراف آخره ۳ تا لینکه که مواردی رو که اینجا یاد میگیرید تو بازی به کار بگیرید پس اگر هیچ علاقه ای به اون ۹۹.۹ درصد ندارید مستقیما تشریف ببرین ته صفحه

بازی عزیزمون ماین‌کرفت طبق سرچ ریزی که آناً تو گوگل کردم به هیچ وجه من الوجوه کدش رو نداریم دست خود شرکته حالا وضعیت مالکیتشو من نمیدونم دست کدوم شرکته ولی کلوز سورسه

به هر نحو با نادیده گرفتن ورژن پاکت ادیشن که از نسخه ۱.۲ش شده بدراک ادیشن ماینکرفت با زبان بسیار خوانا و والامقام تو تخصص ما زبان جاوا نوشته شده (نسخه بدراک به نظر میاد توسط پروژه Xamarin با استفاده از زبان C++ پورت شده و به اندروید و آی او اس بیلد شده)

زبان جاوا زبانی‌است کامپایلری به این معنیه که سورس رو نمیشه از jar ماینکرفت پیدا کرد فقط به علت خاصیت ویژه فایلهای .class جاوا یه چیزایی میشه ازش فهمید.

خلاصش کنم براتون از هر راهی که احتمالا براتون مهم نیس میشه با احتمال بالایی گفت: ماینکرفت از زبان جاوا بدون کتابخونه خاصی (مثلا یونیتی واسه بقیه زبانها و بازیا) ساخته شده ولی به شدت در کدنویسیش آثار شیءگرایی و OOP دیده میشه

این همه سخن رایگان گفتم تا اینو بگم

در OOP همه چیز در قالب یه شیء با خواص مختص خودش هست که با تعریف راه‌های دسترسی به اون خواص میتونیم رفتار اشیاء رو تنظیم کنیم.

مثال بند بالا همین NBT tag هست مثلا در فرمان

/give folani ye_chizi enghad data tag

(که به علت راستچین سازی قالب وردپرس کاراکتر / آخر خط دیده میشه) شما داری به خاصیت inventory فلانی enghad شیء ye_chizi رو اضافه میکنی چون خود یه_چیزی شیء هس پس خودشم خواص داره و خواص اونو data و tag مشخص میکنن

پس شما تا اینجا فهمیدین تگ چیکار میکنه اصن چی‌چی هست.

قسمت بعدی که بایستی بدونید تگ ها از مدل ماینکرفتی ینی nbt tag هس

از نحوه نوشتار nbt میشه نتیجه گرفت که سازنده بازی فی‌الواقع اومده گفته من از “JavaScript Object Notation” یا به اختصار json استفاده میکنم به شرطی که این تگ که شما استفاده میکنید گزینه های محدودی داره که من تعیین میکنم و به اسم nbt بهتون وارد و قالب میکنم

خب حالا جاوااسکریپت و جیسون (یا جی‌سان هرکدوم راحتید) چیه

جاوااسکریپت زبان برنامه نویسی تفسیری هستش که فوق العاده تو وب کاربرد داره و فوق‌العاده نامفهومه هیچ ربطی به جاوا نداره فقط تشابه اسمی دارن؛ این زبان فقط توسط اون دسته کدنویسایی که از جونشون سیر شدن یادگرفته میشه چون طبق منطق این زبان ۱ + ۱ برابر است با ۱۱ (وجدانا)

حالا جیسون یه “قالب انتقال داده” است یعنی کارش اینه که با علائم خاصی انواع داده رو به صورت ساده یا تو در تو نام گذاری و مقداردهی کنه و اونو ذخیره و انتقال بده. با توجه به اینکه نحو و دستور انتقال داده جیسون از جاوااسکریپت مشتق شده نسبت به yaml و xml نامفهومه ولی چون فقط یه قالب انتقال داده‌س اندازه خود جاوااسکریپت نامفهوم نیست.

متاسفانه با توجه به اینکه جاوااسکریپت خیلی کاربردش زیاده تبعا قالب انتقال داده‌ش کاربردش بالا میره و به این طریقه که انقد همه گیره حتی تو بازی مثل ماینکرفت (علت همه گیریشو میتونین ازم بعدا بپرسین) خب حالا یه مثال

الان میخوام اطلاعات علی ۲۴ ساله از نورآباد ممسنی که داره مکانیک سیالات تو دانشگاه پیام نور میخونه رو در قالب جیسون بیان کنم خدمتتون

// Hamishe // Namad tozih to aksar zabanaye barname nevisie
{ //Baz kardan ye shey jadid json
 "Esm": "Ali",
 "Sen": 24,
 "Tahsilat: {// Ye shey to in shey
  "Reshte": "MekanikSayyalat",
  "Daneshgah": "PayamNour - Vahed NourAbad Mamasani"
 }
}

دیدین چه راحت بود پس نترسین به پای xml و yaml نمیرسه ولی اونقدام سخت نیس

خب خب خب الان من این علی رو در قالب جیسون به خدمتتون رسوندم ولی در چند خط جالبه بدونین به علت نحوه نوشتار و جدا کردن اشیاء داخل جیسون میتونین تمام خطوط رو یه خط کنین (از دلایلی که تو ماین استفاده میشه همینه چون yaml که یه خطی کردنش نشده و xml خیلی طولانی) به علی-یه‌خطی یه نگاه بندازین

{"Esm": "Ali", "Sen": 24, "Tahsilat": { "Reshte": "MekanikSayyalat", "Daneshgah": "PayamNour - Vahed NourAbad Mamasani"}}

اگه تو سایت چند خط نشون میده چون قالب سایت اینجوریه ولی من هیچ اینتری موقع نوشتن این نزدم

خب حالا nbt

شما با استفاده از لیست اینجا و دوتا آموزش اینجا و اینجا میتونید از nbt tag استفاده کنید

6+
اگه شما هم دوست دارین اطلاعاتتون رو با بقیه به اشتراک بذارید و نویسنده سایت بشین اینجا کلیک کنید

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

کپچا *

برای مشاهده یکی از پست های سایت
بصورت تصادفی اینجا کلیک کنید.