تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 6 از 6

نام تاپيک: موزش ساخت خشاب اسلحه ( آپگرید اسلحه ) Unreal Script

  1. #1
    ناظر انجمن توسعه و ساخت بازی Reza Azimy_RW's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    بی سرزمین تر از باد
    پست ها
    3,320

    پيش فرض موزش ساخت خشاب اسلحه ( آپگرید اسلحه ) Unreal Script

    سلام دوستان
    خیلی وقت بود فعالیت چندانی نداشتم گفتم بهتره امروز یه آموزش بنویسم
    در این اموزش میخایم یه خشاب اضافه کنیم که با برخورد پلایر ( Pawn ) با اون خشاب اسلحه یا همون تیرها پر بشه . دقیقا" مثل اکثر بازیهای تیر اندازی که بعضی جاها خشاب هست .

    مراحل کلی :
    مرحله اول : اضافه کردن کد اضافه کردن تیر به کلاس اصلی اسلحه
    مرحله دوم : ساخت یک اکتور که با برخورد با اون فانکشن مربوط به افزایش تیر فراخانی بشه

    =============

    خوب اول باید تصیمی بگیریم این خشاب رو برای کدوم اسلحه بسازیم

    در اینجا من ShochRifle رو انتخاب کردم
    ابتدا باید یه فانکشن بنویسیم تا خشاب رو پر کنه . برای این کار چون میخایم برای ShochRifle خشاب بنویسیم اسمشو سرچ میکنیم تا کلاسهای مربوط به اونو پیدا کنیم
    با سرچ کلمه ShochRifle در مسیر Development\Src با چند تا کلاس مواجه میشیم . ما باید این فانکشن رو در کلاس اصلی اصلحه که مستقیما" از UTWeapon مشتق گرفته شده بنویسیم پس میریم سراغ کلاس UTWeap_ShockRifleBase
    این کلاس رو باز کنید . همونطور که گفتم میبینید که از UTWeapon مشتق گرفته شده .
    این کدها رو بهش اضافه میکنیم :




    function UpgradeWeapon()
    {
    AddAmmo(MaxAmmoCount);
    }

    توضیحات :


    AddAmmo یه فانکشن هست در کلاس UTWeapon که میتونیم با استفاده ازش هر تعداد مهمات نیاز داشتیم اضافه کنیم

    MaxAmmoCount یک متغیر که در کلاس UTWeapon هست که اطلاعات مربوط به حده اکثر تیر مجاز برای اصلحه در اون ذخیره میشه

    در کل با استفاده از این :

    AddAmmo(MaxAmmoCount);

    میگیم حده اکثر تیر مجاز برای اسلحه فعلی رو اضافه کن



    مرحله اول تموم شد


    خوب حالا ما باید یه کلاس خودمون بنویسیم که یک اکتور باشه که با برخورد کرکتر با اون در صورتی که همین اصلحه دستش باشه تیر رو اضافه کنه و خودش حذف بشه
    برای این کار این کدها رو باید بنویسید :

    class WeaponUpgrade extends Actor
    placeable;

    event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal)
    {
    if(Pawn(Other) != none && UTWeap_ShockRifleBase(Pawn(Other).Weapon) != none)
    {
    UTWeap_ShockRifleBase(Pawn(Other).Weapon).UpgradeW eapon();
    Destroy();
    }
    }


    defaultproperties
    {
    bCollideActors=True
    Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
    bEnabled=TRUE
    End Object
    Components.Add(MyLightEnvironment)
    Begin Object Class=StaticMeshComponent Name=PickupMesh
    StaticMesh=StaticMesh'UN_SimpleMeshes.TexPropCube_ Dup'
    Materials(0)=Material'EditorMaterials.WidgetMateri al_Y'
    LightEnvironment=MyLightEnvironment
    Scale3D=(X=0.125,Y=0.125,Z=0.125)
    End Object
    Components.Add(PickupMesh)
    Begin Object Class=CylinderComponent Name=CollisionCylinder
    CollisionRadius=16.0
    CollisionHeight=16.0
    BlockNonZeroExtent=true
    BlockZeroExtent=true
    BlockActors=true
    CollideActors=true
    End Object
    CollisionComponent=CollisionCylinder
    Components.Add(CollisionCylinder)
    }
    توضیحات :

    if(Pawn(Other) != none && UTWeap_ShockRifleBase(Pawn(Other).Weapon) != none)

    دستور شرطی که میگه اگر پلایر وجود داشت و صلاح UTWeap_ShockRifle رو هم داشت فلان عملیات رو انجام بده

    UTWeap_ShockRifleBase(Pawn(Other).Weapon).UpgradeW eapon();

    این کد میگه برو به کلاس UTWeap_ShockRifleBase و فانکشن UpgradeWeapon رو اجرا کن که باعث میشه مهمات اضافه بشه
    Destroy();
    اینم که خیلی ساده میگه اکتور حذف بشه

    خوب این کدها داخل ایونت Touch قرار داره چون میخایم وقتی برخورد بین کرکتر با این اکتور انجام شد کدهای داخلش اجرا بشه

    کدهای مربوط به بخش defaultproperties هم فکر نکنم نیازی به توضیح داشته باشه کدهایی هست که تقریبا" در هر اکتوری وجود داره و بدنه اصلی رو تشکیل میده مثل Colession یا تاثیر نورها بر اکتور یا مش اون و ...

    سوالی بود درخدمتم
    موفق باشین

    Last edited by Reza Azimy_RW; 25-02-2012 at 17:59.

  2. 3 کاربر از Reza Azimy_RW بخاطر این مطلب مفید تشکر کرده اند


  3. #2
    پروفشنال rezarrrr's Avatar
    تاريخ عضويت
    Dec 2011
    محل سكونت
    ...
    پست ها
    640

    پيش فرض

    میتونی یکم ساده تر توضیح بدی که بدونم چی گفتی؟ هیچی متوجه نشدم

  4. #3
    ناظر انجمن توسعه و ساخت بازی Reza Azimy_RW's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    بی سرزمین تر از باد
    پست ها
    3,320

    پيش فرض

    خوب کجاشو متوجه نشدی ؟ بگو تا کامل توضیح بدم
    سعیمو کردم تا حد ممکن جوری بنویسم همه متوجه بشن
    Last edited by Reza Azimy_RW; 25-02-2012 at 14:51.

  5. #4
    پروفشنال rezarrrr's Avatar
    تاريخ عضويت
    Dec 2011
    محل سكونت
    ...
    پست ها
    640

    پيش فرض

    در اینجا من ShochRifle رو انتخاب کردم
    ابتدا باید یه فانکشن بنویسیم تا خشاب رو پر کنه . برای این کار چون میخایم برای ShochRifle خشاب بنویسیم اسمشو سرچ میکنیم تا کلاسهای مربوط به اونو پیدا کنیم
    با سرچ کلمه ShochRifle در مسیر Development\Src با چند تا کلاس مواجه میشیم . ما باید این فانکشن رو در کلاس اصلی اصلحه که مستقیما" از UTWeapon مشتق گرفته شده بنویسیم پس میریم سراغ کلاس UTWeap_ShockRifleBase
    این کلاس رو باز کنید . همونطور که گفتم میبینید که از UTWeapon مشتق گرفته شده .
    این کدها رو بهش اضافه میکنیم :





    function UpgradeWeapon()
    {
    AddAmmo(MaxAmmoCount);
    }

    سرچ رو کجا انجام بدم ؟
    وقتی تو گیم هستیم یا چی؟
    بعد اگه ممکنه یه اموزش تصویری بیشتر کمک میکنه

  6. #5
    ناظر انجمن توسعه و ساخت بازی Reza Azimy_RW's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    بی سرزمین تر از باد
    پست ها
    3,320

    پيش فرض

    اموزش تصویری که واسه کد نویسی نیاز نیست
    ببین سرچ تو آدرسی که نوشتم . قصد اصلی پیدا کردن کلاسهای مربوطه هست .
    برو به آدرسی که یو دی کی رو نصب کردی بعد پوشه Development\Src اونجا تمام کلاسها هست تو اون پوشه رو منظورم بود سرچ کنی
    بازم جایی مشکل داشتی بگو

  7. #6
    پروفشنال rezarrrr's Avatar
    تاريخ عضويت
    Dec 2011
    محل سكونت
    ...
    پست ها
    640

    پيش فرض

    اها حالا افتاد
    الان میرم تو نخش
    ممنون

  8. این کاربر از rezarrrr بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •