1 مرفق
[مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اليوم طخت ببالي فكرة عجبتني ,وأن شاء الله تعجبكم
وهي خاصة لمستخدمي RPG Maker Vx ,الفكرة هي
مكتبة للنصوص الصغيرة أي Mini Script وتعني اسطر
قصيرة لاتتعدى 10 أسطر تضاف الى السكربت ليتم
التحكم بخصائصها عن طريق الأيفنت,او تحسن عمل
الأيفينت.
ان شاء الله كل أسبوع حطرح مثالين + شرح
في هذا الموضوع.
هذا أذا قبل المشرفين بالفكرة.
ونبدأ باول سكربت قصير:
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
طريقة لربط خيارات خانة الرسائل مع عمل الأيفينت
اول شيئ حنقوم به هو عمل متغير جديد ونسميه MES_Counter
أو أي أسم يعجبك,وكذلك رسالة والخيارات التي سترفقها مع
الرسالة:
هذه هي احداث الرسالة:
ثانياً قم بعمل أيفينت جديد وليكن المؤشر اختر الصورة المناسبة له.
ملاحظة(جميع هذه الأيفينتس سنكونها في طرف الخريطة)
ثالثاً قم بعمل مفتاح جديد (Switch) وسميه MES_ON\OF
أو أي أسم يعجبك,وهو سيجعل المؤشر يختفي عند اختفاء الرسالة.
رابعاً افتح قائمة السكربتات ,اختر السكربت Window_Message
,اضف هذا السطر بعد السطر 50 :
كود:
$game_variables[1] = self.index
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
ماذا يفعل هذا السطر؟
هذ السطر سيقوم بتغير قيمة المتغير MES_Counter
مع مكان المؤشر حيث ان اول خيار يكون الـIndex فيه 0
والثاني 1 والثالث 2 وهكذا ,وبهذه الطريقة سيمكننا السيطرة
على حدث ما عن التغير من خيار الى أخر حسب قيمة MES_Counter
,وهذه صورة موضحة لذلك:
http://img6.imageshack.us/img6/9002/example2.gif
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
خامساً قم بعمل ايفينت جديد ,وسيكون الأيفينت المسيطر على الاحداث
عند تغير المتغير ,بمكنك الأن عمل ماشأت عن طريق الشرط الفرعي ,فأنا قمت
بادخال المعلومات التالية فيه:
http://img16.imageshack.us/img16/9782/84040957.jpg
في السطر الاول اخبرت البرنامج اذا كان المفتاح MES_ON\OF مفتوحاً
اظهر المؤشر ,واذا كان مغلقاً ,غير تغشية المؤشر الى صفر ليختفي,
وكذلك داخل الشرط الفرعي السابق قمت بعمل شرطين الأول
عن تحول MES_Counter قيمته الى صفر يتحول امام الشخصية الأولى,
وعندما تتغير القيمة الى 1 يتحول امام الشخصية الأخرى.
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
لتحميل المثال في المرفقات:
من هنا
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
أن شاء الله اشوف تطبيقاتكم للدرس بصورة مختلفة
عن تحرك السهم.
وان شاء الله تكون الفكرة قد نالت اعجابكم
انتظروا المزيد من النصوص القصيرة
والدروس.
كذلك في نفس الموضوع.
دُمتم بِود
ثانياً : طريقة جعل كل اداة العدد المحدود لها
طريقة جعل كل اداة العدد المحدود لها
جميع مستخدمي RPG Maker يعرفون ان جميع الأدوات العدد المحدود
لها هو 99 ,ولكن هل نستطيع ان نجعل لكل اداة العدد المحدود الخاص بها؟
نعم,وبكل سهولة:
اولاً هناك عدد متسلسل يبدأ به أسم الأداة,المهارة,البطل,الخ......
تجده تقريباً في كل شيئ في اللعبة حتى في الخريطة الأيفينت ويسمى
ID ,هذه يعتبر اساس التحكم في اللعبة وتحديد خواص كل شيئ فيها.
وبه نستطيع ان نعطي كل اداة العدد المحدود لها,وهذه صورة توضح الـID
في الادوات:
2- انتقل الى السطر 199 تلاحظ هذا النص:
اقتباس:
@items[item.id] = [[number + n, 0].max, 99].min
http://img301.imageshack.us/img301/1574/98631629.png
هذا السطر يضع حدود لعدد الأدوات التي يمكن الحصول عليها ,وهو كما ترون 99 يمكنك
تغيرها الى أي عدد شئت,غيرها الى 15 وجرب وزود نفسك بأي اداة واجعل العدد 99 ,سترى
في قائمة الأدوات ان عدد الاداة هو 15.
لكن هنا جميع الأدواة ستكون حدودها 15,اذن كيف اجعل لكل اداة حدها المعين,هنا
تاتي فائدة الID .
هناك اداة تدعى Case وهي موجودة تقريباً في جميع اللغات وهي معروفة
تقوم بعمل تعداد اذا اقترنت قيم أي عدد من التعداد مع الشرط ستنفذ القيمة الخاصة
بالعدد ,وسنستفاد منها هنا في عملنا.
بعد السطر 198اعمل سطر جديد واضف النص التالي:
اي اعمل تعداد لـID الأدواة.
ثم بعد هذا السطر اعمل سطر جديد أخر واضف:
@items[item.id] = [[number + n, 0].max, 15].min
اخبرنا البرنامج ,اذا كان الـID يساوي 1 قم بعمل الحد 15 ,والاداة التي تبدا بالID واحد هي
الترياق أو Potion .وبذلك سيكون حده هو 15.
وهكذا مع باقي الأدواة ,ولكن لاتنسى بعد ان تنتهي من أخر حد للأداة ان تضع السطر
التالي:
@items[item.id] = [[number + n, 0].max, 99].min
end
لكي يقوم بعمل حد لباقي الادواة التي لم يتم ذكر الID في التعداد.
وهذا ماقمت بعمله:
when 1 # Potion ID
@items[item.id] = [[number + n, 0].max, 15].min
when 15..20 #ID for Fire scroll,Flame scroll,Ice scroll,Blizzard scroll,Thunder scroll,Spark scroll
@items[item.id] = [[number + n, 0].max, 5].min
when 9 # Life up ID
@items[item.id] = [[number + n, 0].max, 34].min
else #Other item ID
@items[item.id] = [[number + n, 0].max, 99].min
end
وهذ توضيح له:
┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬┴┴┬
ان شاء الله يكون الدرس قد نال
اعجابكم
أي سؤال انا في الخدمة
في أمان الله
رد: [مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
1 مرفق
ثالثاً:التحكم بخلفية خانة المحادثة عن طريقة ايفينت
===============================================
قد يمل البعض من الجمود الموجود في خانة المسج بسبب الـWindow Skin وهو
يعطي مظهر واحد لجميع الخانات الموجودة في اللعبة ,لذلك قد يستخدم البعض خاصية
Dim Background :
http://dc02.arabsh.com/i/00118/e3xxjff2954y.png
هذه الخاصية تجعل لخانة المحادثة خلفية ,الخلفية الأعتيداية هي سوداء ,لكن
يمكن تغيرها ,فمثلاً تستخدم هذه الخلفية:
http://dc02.arabsh.com/i/00118/cnhwfxj6pmwu.png
لكن هذه الخلفية ستجبرك على وضع كل ايفينت يتم فيه اجراء محادثة ان يرفق بوجه ,
وبهذه الطريقة حتزيد من حجم اللعبة وكذلك صعوبة الحصول على وجوه للرسيورس
الخارجي.
هنا تأتي فائدة لغة RGSS2 .
نبدأ على بركة الله:
===============================================
1-افتح محرر السكربتات,ثم اعمل سكربت جديد تحت Materials واعطه
أي اسم تشاء .
2-ادخل فيه الميني سكربت التالي:
كود:
#==============================================================================
# ** NXP Mini Script
# |- Message Back Changer
#==============================================================================
class Game_Temp
attr_accessor :message_back
alias nxp_mini_script_new_verd initialize
def initialize
nxp_mini_script_new_verd
@message_back = ""
end
end
class Window_Message < Window_Selectable
alias nxp_mini_script_new_methoud create_back_sprite
alias nxp_mini_script_new_update update_back_sprite
def create_back_sprite
nxp_mini_script_new_methoud
@back_sprite = Sprite.new
if $game_temp.message_back != ""
@back_sprite.bitmap = Cache.system($game_temp.message_back)
else
@back_sprite.bitmap = Cache.system("MessageBack")
end
@back_sprite.visible = (@background == 1)
@back_sprite.z = 190
end
def update_back_sprite
nxp_mini_script_new_update
@back_sprite.visible = (@background == 1)
@back_sprite.y = y - 16
@back_sprite.opacity = openness
if $game_temp.message_back != ""
@back_sprite.bitmap = Cache.system($game_temp.message_back)
else
@back_sprite.bitmap = Cache.system("MessageBack")
end
@back_sprite.update
end
end
شرح السكربت:
كود:
attr_accessor :message_back
في هذا السطر كونا متغير جديد في الصنف Game_Temp ,وهو
متغير من نوع عالمي أي بهذا الشكل game_temp.message_back$ .
في هذا السطر حددت قيمة المتغير وكانت قيمته لاشيئ.
كود:
if $game_temp.message_back != ""
@back_sprite.bitmap = Cache.system($game_temp.message_back)
else
@back_sprite.bitmap = Cache.system("MessageBack")
end
في بداية السطر كونت شرط وفيه فلت اذا لم يكن المتغير
game_temp.message_back$ تساوي قيمته لاشيئ "" نفذ السطر انفا:
كود:
@back_sprite.bitmap = Cache.system($game_temp.message_back)
وهو يعني قم بوضع الخلفية التي عنونها يساوي اسم المتغير
game_temp.message_back$ .
والسطر الثالث يامر البرنامج اذا كان المتغير game_temp.message_back$
يساوي فراغ قم بوضع الخلفية الأعتيادية أي الخلفية السوداء.
وكذلك بالنسبة للupdate_back_sprite .
===============================================
طريقة الأستعمال :
قبل كل محاورة قم بعمل Script وادخل فيه هذا النص
"اسم الصورة" = game_temp.message_back$
وأبدل "أسم الصورة" بأسم الصورة المراد عملها كخلفية,ويجب انت
تكون موجودة في الملف System :
http://dc03.arabsh.com/i/00120/xkkrrcch5ggs.png
وبهذه الطريقة سنستطيع التحكم بالخلفية ,فمثلاً عندما يتحدث البطل ونختار الوجه
نستخدم الخلفية التالية :
http://dc02.arabsh.com/i/00118/cnhwfxj6pmwu.png
وعندما يتحدث رجل عادي مثلاً بائع نستخدم الخلفية التالية:
http://dc02.arabsh.com/i/00120/9nou5lfxyb2b.png
وهذا مااضفته من أحداث في الصورة التوضيحية:
http://dc03.arabsh.com/i/00120/g8qeyx22737d.png
===============================================
تحميل المثال في المبرفقات
او من هنا
===============================================
أنتهى الدرس
أي سؤال انا في الخدمة.
في أمان الله
رد: [مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
مآشآء الله عليك أخي أنور , أبدعت والله
ياريت تواصل وتتحفنا بالمزيد من الدروس والسكربتات ^^
موفق حبيبي
رد: [مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
رد: [مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
شكراً لك على دروسك و ارجو الاستمرار :)
رد: [مكتبة+دروس]مكتبة السكربتات الصغيرة للـVX + شرح تثبيت السكربت
انا مبتدئ في برنامج rpg maker vx >_< لكن دروسك تجعل ألعاب المبتدئين تبدوا احترافية
شكرا جزيلا ولم يبقى سوى التجريب