محل تبلیغات شما

نوشتن Gamemodes

 
 

این راهنما تلاش می کند تا فرایند نحوه نوشتن یک Gamemode مناسب را توصیف کند. اگر شما فقط با استفاده از اسکریپت برای MTA شروع کردید، ممکن است بخواهید دیگر آموزشهای اسکریپت را در صفحه اصلی اول بررسی کنید.

معرفی

Gamemode یک منبع است که هر بار شروع می شود، تمام گیم پلی را کنترل می کند. این ممکن است شامل گفتن بازیکنان در مورد آنچه که انجام می دهند، ایجاد بازیکنان، ایجاد تیم ها، تعریف آنچه که بازیکنان باید انجام دهند برای برنده شدن یا گرفتن امتیاز و خیلی بیشتر. مثالها عبارتند از نژاد و مرگ و میر.

معنی "gamemode مناسب" چیست؟

برای قرار دادن آن به سادگی، یک Gamemode مناسب است که استفاده کامل از فایل سیستم فایل نقشه MTA است.این بدان معنی است که کد gamemode هیچ اطلاعات خاص نقشه ای را که در آن سخت است، مانند موقعیت بازیکنان یا اتومبیل ها ندارد. در عوض Gamemode باید بتواند فایلهای Map را بارگذاری کند که این اطلاعات را تعریف می کنند. به این ترتیب gamemode می تواند چندین نقشه داشته باشد؛ همچنین، افراد می توانند فایل های Map را برای gamemode با ویرایشگر نقشه MTA ایجاد کنند که بسیار راحت تر از نوشتن کد است.

یک نمونه واضح از "gamemode مناسب" MTA: Race است. این اجازه می دهد تا نقشه های usermade با بسیاری از امکانات در فایل .map. برای تغییر نقطه اکتشاف، اشیاء و غیره، کاربر نیازی به ویرایش خود gamemode ندارد.

فایل های نقشه

فایل های نقشه اساسا اسناد XML با یک فرمت .map است.آنها یک محیط را برای بازی یک یا چند gamemodes خاص درون تعریف می کنند. با این وجود نباید قواعد بازی را تغییر داد - آنها توسط gamemode تعریف می شوند.

هر عنصر در یک نقشه مربوط به یک گره در فایل .map است. نحوی استاندارد برای موارد رایج مانند نقطه اکتشاف، وسایل و وسایل نقلیه وجود دارد. با این حال، برای "خاص"، اطلاعات خاص gamemode، شما باید سنتکس خود را اختراع کنید.

مثال

بگذارید یک نمونه Capture را برای gamemode پرچم بگیریم. نقشه ای برای این gamemode نیاز به طور عمده برای تعریف مکان های spellpoint و پرچم، و در نهایت اشیا و وسایل نقلیه. یک فایل نقشه ساده می تواند به صورت زیر باشد:

 <نقشه><spawnpointid="spawnpoint1"posX="1959.5487060547"posY="- 1714.4613037109"posZ="877.25219726563"rot="63.350006103516"model="0"/><pickupid="زره 1"posX="1911.083984375"posY="- 1658.8798828125"posZ="885.40216064453" نوع ="زره"health="50"respawn="60000"/><flagposX="1959.5487060547"posY="- 1714.4613037109"posZ="877.25219726563"team="blue"/> . </ map>

در اینجا شما می توانید دو عنصر MTA را مشاهده کنید - یک spellpoint و یک وانت. مهمتر از همه، این .map دارای گره سفارشی "پرچم" است که موقعیت و رنگ پرچم را تعریف می کند. با استفاده از منابع خارجی موجود، می توان از اکتشاف و جمع آوری داده ها استفاده کرد. عناصر سفارشی باید توسط gamemode پردازش شوند.

برای خلاصه کردن - ما می خواهیم ورودی نقشه گیر جرمی که ما در MTA دیدیم: نژاد. کاربران نبايد مجبور باشند که تمامي اسکريپت gamemode خود را لمس کنند.

مثال گرفتن اطلاعات نقشه

همانطور که در بالا ذکر شد gamemode شما نیاز به بازیابی عناصر سفارشی دارد که در یک فایل نقشه تعریف شده است و آنها را پردازش می کند. این کاملا آسان است که در زیر نشان داده شده است.

 - یک جدول را با تمام عناصر پرچم بازیابی کنید flagElements محلیمحلی= getElementsByType ("پرچم") - حلقه از طریق آنهابرایکلید،ارزشدرجفت(flagElements)انجامدهید - اطلاعات خود را دریافت کنیدlocal posX = getElementData (value، posX)محلی posY = getElementData (مقدار،"posY")محلی posZ = getElementData (مقدار،"posZ")تیممحلی= getElementData (ارزش،"تیم") - ایجاد یک شی با توجه به موقعیت پرچم createObject (1337، posX، posY، posZ) - خروجی تیمی که پایه ای برای آن ایجاد کردیم outputChatBox ("پایه برای تیم"تیم"ایجاد")پایان

تابع getElementsByType یک جدول از تمام عناصر نوع خاصی را بازیابی می کند (نوع مربوط به نام گره در فایل .map است). این کار برای هر دو نوع سفارشی و ساخته شده است در انواع MTA (مانند "وسیله نقلیه" و یا "پخش").getElementData می تواند برای بازیابی ویژگی های xml تنظیم شده در فایل .map استفاده شود. در این مثال ساده، یک شی در مکان پرچم ایجاد می شود و یک پیام در جعبه چت نمایش داده می شود. در حقیقت، در حین بارگذاری نقشه، قطعا نیاز به انجام بیشتر دارید، مانند در این مورد ایجاد اشکال برخورد برای شناسایی بازیکنان پرچم.

 

مدیر نقشه

پس از خواندن بخش فوق، باید مشخص شود که gamemode همیشه باید شامل دو بخش باشد:

  • منبع gamemode همیشه همیشگی است
  • بسیاری از منابع نقشه های مختلف که به اطلاعات خاص نقشه gamemode داده می شود

در حال حاضر به جای نوشتن نقشه باربر برای هر gamemode تک، مدیر نقشه عمل می کند برای بارگذاری gamemodes و نقشه ها. به سادگی می توان گفت هنگام وارد کردن فرمان صحیح (به عنوان مثال gamemode ctf ctf-italy) هر زمان که "ctf" و "ctf-italy" را با استفاده از یک رویداد ( onGamemodeMapStart ) شروع کنید، به منبع ctf بگویید که یک نقشه بارگذاری شد منابع "ctf" پس از آن می توانند به اطلاعات "ctf-italy" دسترسی پیدا کنند و شروع به تولید بازیگران و غیره کنند.

نحوه استفاده از مدیر نقشه

برای استفاده از سرویس mapmanager، منبع gamemode شما باید به عنوان اولین بار برچسب گذاری شود. به طور خاص، ویژگی "type" تگ <info> خود را به "gamemode" در meta.xml تنظیم کنید. همچنین شما می توانید ویژگی "نام" را به یک نام دوستانه (مانند "ضبط پرچم") تنظیم کنید که به جای نام منابع به عنوان ASE نمایش داده خواهد شد.

 <! - meta.xml در "cowcatapult" gamemode -><meta><info نوع ="gamemode"name="گاو catapulting 2.0"/> </ meta>

اگر gamemode شما بارگذاری نقشه های سفارشی است، شما باید برای دسته بندی ها اضافه کنید

  • onGamemodeMapStart
  • onGamemodeMapStop (در صورت تخلیه لازم است)

هنگامی که یک نقشه برای gamemode شما شروع یا متوقف می شود، آنها را اخراج می کنند و منابع نقشه را به عنوان یک پارامتر انتقال می دهند. در داخل تابع handler برای این رویدادها می توانید تمام اطلاعاتی را که از فایل های نقشه منابع و فایل های پیکربندی نیاز دارید را استخراج کنید.

مثال

 function startCtfMap (startedMap) - startMap حاوی مرجع به منبع نقشه است mapRoot = getResourceRootElement (startedMap) - گره root از نقشه آغاز شده را دریافت کنید flagElements محلی = getElementsByType ("پرچم"، mapRoot) - همه پرچم ها را در نقشه دریافت کنید و آنها را در یک جدول ذخیره کنید - اطلاعات مربوط به بارگذاری مانند مثال بالا را وارد کنید - بازیکنان اکتشاف و غیرهپایان addEventHandler ("onGamemodeMapStart"، getRootElement ()، startCtfMap)

سازگاری نقشه ها

نقشه ها منابع جداگانه ای هستند. این کار انجام شده است، بنابراین هیچ ویرایش از منبع gamemode برای ساخت یک نقشه سفارشی ضروری نیست، و همچنین به شما اجازه می دهد تا بسته های اسکریپت / پیکربندی خاص نقشه را با آنها بسته کنید.

برای ایجاد نقشه سازگار با gamemode خود، meta.xml منبع خود را باز کنید و آن را نیز برچسب گذاری کنید: ویژگی "type" باید بر روی "map" تنظیم شود و ویژگی gamemodes باید یک لیست جدا شده با کاما باشد (بدون فضای ) از نام منابع gamemode که نقشه با آن کار می کند.

 <! - meta.xml نقشه -><meta><infotype="map"gamemodes="cowcatapult، attack، tdm"/> </ meta>

هنگامی که همه چیز را تنظیم می کنید، مدیران از این دستورات برای شروع / توقف gamemodes استفاده می کنند: / gamemode gamemodeName [mapName] (پارامتر اختیاری اجازه می دهد تا یک نقشه اولیه، پیش فرض به هیچ کدام) / changemap mapName [gamemodeName] (پارامتر اختیاری gamemode را مشخص می کند برای شروع نقشه با پیش فرض به یک فعلی)

مدیر نقشه چند توابع دسترسی بیشتری را صادر می کند که شما مجبور نیستید استفاده کنید، اما ممکن است مفید باشد.

چه چیز دیگری باید انجام دهید

چندین منبع دیگر وجود دارد که gamemodes باید با آن سازگار باشد.

Helpmanager

راهنمای کمک باید رابط استاندارد برای بازیکنان زمانی که آنها به کمک نیاز دارند. اگر از helpmenager برای کمک به gamemode خود استفاده کنید، هر بازیکنانی که قبل از استفاده از admin manager (به عنوان مثال در gamemodes دیگر)، بلافاصله می دانند که چگونه به آنجا بروند. همچنین، در صورت وم، برای منابع مختلف در یک پنجره، کمک می کند.

دو راه اصلی برای استفاده از help manager وجود دارد:

  • یک متن ساده ارائه دهید که نحوه استفاده از gamemode خود را توضیح دهد
  • درخواست یک عنصر GUI از helpmanager که در زبانه خود در پنجره مدیریت کمک نمایش داده می شود و به شما اجازه می دهد تا عناصر GUI را به آن اضافه کنید. این روش توصیه شده برای gamemodes است که نیاز به نمایش اطلاعات پیچیده ای دارد که نیاز به GUI خاصی دارد.

برای اطلاعات بیشتر در مورد چگونگی انجام این کار، به صفحه راهنمای مدیریت کمک مراجعه کنید.

رتبه بندی

نمره نمایش بازیکنان و تیم های حاضر در حال بازی را نمایش می دهد. ستون های سفارشی را به آن اضافه کنید تا اطلاعات خاص نقشه را فراهم کنید. به عنوان مثال ستون 'points' در gamemode 'ctf' می تواند امتیاز های بازیکن را از طریق کشتن یا تسخیر به دست آورد. به طور معمول، برای اطلاعات بیشتر صفحه کمک صفحه رتبه بندی را مشاهده کنید.

نقشه سیکلر

نقشه سیکلر کنترل آنچه gamemodes و نقشه ها بر روی یک سرور انجام می شود. شما می توانید برای مثال چند بار در یک ردیف یک نقشه تا زمانی که آن را به یک بعدی تغییر کند. برای رسیدن به این هدف، هنگامی که gamemode خود را به پایان رساند (به عنوان مثال هنگامی که یک دور پایان می یابد)، باید نقشه cycler را به آن بگویید.


مرجع سمپ جی تی آی سن اندریاس آنلاین

مشخصات

تبلیغات

محل تبلیغات شما

آخرین مطالب این وبلاگ

آخرین ارسال ها

محل تبلیغات شما محل تبلیغات شما

برترین جستجو ها

آخرین جستجو ها