PDA

عرض كامل الموضوع : إنشاء قوائم للميرك



البرق
18-08-2003, 01:38 PM
بسم الله الرحمن الرحيم
وبعد

بعد ان استعرضنا في النبذة عن أقسام الكتابة في الميرك واتفقنا على انها خمس اقسام و تكلمنا عن القسم الأول
aliase
سنحاول تكملة ما بدأناه من شرح باقي الاقسام

---------------------------------------Popups---------------------------
وهذا القسم يتعلق بالقوائم الموجوده داخل الاسكريبت

لدينا بالاسكريبت خمس أقسام تظهر فيها قوائم مختلفة

وهي
Status
وهذه النافذة موجودة بالاسكريبت بشكل دائم سواءا كنا بغرف او لم نكن فيها ولديها قائمة خاصة بها
Channel
و للغرف ايضا قوائم خاصة بها وطبعا الاوامر الموجوده في القائمة ستكون متعلقة بالغرفة

Query/Chat
القوائم الخاصة بالنوافذ الخاصة (الوسابر) والشات ولديها قائمة خاصة بها
Nicklist
القائمة الخاصة بقائمة الاشخاص

Menubar
القائمة الموجوده بأعلى الاسكريبت حيث يضع عليها الكثير باعلاها اسماءهم او اسماء اسكريبتاتهم الخ وفيها ايضا اوامرها الخاصة

سنتكلم هنا كيف الكتابة في كل واحده منهم
-------------------

أسلوب الكتابة بالاقسام الخمسة واحد والتنقل بينهم واحد ويكون بالاسلوب التالي
للتنقل بين هذه القوائم اجعل النافذه النشطة هي
Popups
ومن ثم اذهب الى View
وبعدها ستشاهد الأقسام الخمسة التي ذكرناها
اختر القسم الذي تريد الكتابة به
----------------------------------------------------------
طريقة الكتابة

مثلا نريد اضافة امر وهو join في الـStatus يمكننا من الضغط عليه ومن ثم يذهب الاسكريبت الى غرفة اسمها #Helper

سنكتب التالي في قسم Status من popups
Join : Join #Helper

و بعدها سنضغط على أوكي و سنذهب الى النافذة استاتوس
وبالزر اليمين داخل النافذة استاتوس ستظهر لنا القائمة وستظهر بداخلها
Join

عند النقر على الكتابة هذه سينفذ ما هو مكتوب بعد النقطتين join #Helper
-------------------------------------------------------------

ماذا لو لم يعجبنا الاسلوب التالي حيث نريد ا لاسكريبت دخول أي غرفة نريدها حيث نريد النقر على امر الجوين
ومن ثم تظهر لنا نافذة صغيره تكتب بداخلها الغرفة المطلوبة ؟؟؟؟

بسيط جدا
--------------------------------------------
سنكتب التالي بدلا مما كتبناه سابقا
[code:1] join : Join $$? [/code:1]

---------------------------------------------

ما اذا لو اردنا ان نكتب في النافذة النص التالي
أدخل اسم الغرفة التي تريد الدخول إليها :

بسيط جدا ايضا
--------------------------------------------
سنكتب التالي بدلا مما كتبناه سابقا
[code:1]Join : Join $$?="أدخل اسم الغرفة التي تريد الدخول إليها:" [/code:1]
-------------------------------------------


لو أردنا انشاء قائمة خاصة بالأوامر

نسميها
Command
وعندما نختار على كوماند ستتذيل منه قائمة وتظهر فيها الأوامر المتاحة استخدامها من القائمة
وسنضع بخلالها أوامر الدخول والخروج ...................

سنكتب التالي

------------------------------------------------
[code:1]Command
.join : Join $$?="أدخل اسم الغرفة التي تريد الدخول إليها:"
.Part : Part $$?="أدخل اسم الغرفة التي تريد الخروج منها:" [/code:1]

---------------------------------
لاحظ لتذييل قوائم داخل قوائم أو أوامر داخل قوائم سنستعين بالنقط
.
..
...
نقطه واحده تعني أول قائمة من الأصل
نقطتين تعني القائمة الثانية من الأصل وعادة يسبقها قائمة تبدأ بنقطه
وهكذا الثلاث نقاط والاربع .............. الخ
------------------------------------------
لو أردنا وضع فاصل خط صغير منحوت بينهما
سنضع بينما اشارة الناقص كالتالي
------------------------------------------------
[code:1]Command
.join : Join $$?="أدخل اسم الغرفة التي تريد الدخول إليها:"
.-
.Part : Part $$?="أدخل اسم الغرفة التي تريد الخروج منها:" [/code:1]
---------------------------------
الان لو أردنا تنسيق القائمة وجعل كوماند هي الواجهة وعند اختيارها سيتذيل منها قائمتان
Room
Nick
وعند Room سيتذيل منها الأوامر الخاصة بالغرف مثل الدخول والخروج .......... الخ
وعند Nick سيتذيل منها الأوامر الخاصة بالأسماء مثل تغير الاسم وطلب الاستعلام (whois) ... الخ

سنكتب التالي

-----------------------------------------------------------

[code:1]Command
.Room
..join : Join $$?="أدخل اسم الغرفة التي تريد الدخول إليها:"
..-
..Part : Part $$?="أدخل اسم الغرفة التي تريد الخروج منها:"
.Nick
..Change Your nick : nick $$?="أدخل اسمك الجديد:"
..whois: whois $$?="أدخل الاسم التي تريد الاستعلام عنه:"[/code:1]

---------------------------------------------------------------------------------
ما ذا لو اردنا كتابة القائمة السابقة باللغة العربية لا مانع من ذلك حيث الكتابة باللغة العربية قبل النقطتين لن يؤثر اطلاقا على عمل الأوامر
وتكون بالصورة التالية

-----------------------------------------------------------------
[code:1]الأوامر
.غرف
..دخول : Join $$?="أدخل اسم الغرفة التي تريد الدخول إليها:"
..-
..خروج : Part $$?="أدخل اسم الغرفة التي تريد الخروج منها:"
.أسماء
..-
..غير اسمك : nick $$?="أدخل اسمك الجديد:"
..استعلام: whois $$?="أدخل الاسم التي تريد الاستعلام عنه:" [/code:1]
-----------

وهكذا في جميع القوائم سنكتب بنفس الاسلوب
بالنسبة لقائمة Menubar وهي اخر قائمة موجوده عند اختيار View
نستطيع الكتابة بالأعلى اي اسم نستطيع مشاهدته ضمن شريط الادوات
مثلا لو كتبنا باول سطر من المنيو بار DarkBlues
سنجد أن شريط المهام تحول الى الشكل التالي

File Tools Dcc DarkBlues Window Helpe

--------------------------------------------------------------------------------------
لو كنت تستخدم ميرك خالي من الكتابة ستجد مكتوب باعلى القائمة
Command
كل ما عليك تغيير الكتابة السابقة ووضع ما تريد
------------------------------------------------------------------------------------------
بالنسبة لقوائم الغرف
نستطيع الاستعانة بالرمز # او $chan او $active

------------------------------------------------------------------------------------------
تلك المتغيرات السابقة ستتحول قيمتها من المكتوب الى اسم الغرفة الموجود بها حاليا مباشرة
----------------------------------------------------------------------------------------

مثلا نريد كتابة أمر الخروج من الغرفة فقط عند النقر على الخروج نخرج من الغرفه دون اعطاءنا نافذه تشير الى كتابة اسم الغرفه سنستعين باي متغير من السابق للدلالة عليه

------------------------ ما سيكتب في البوبز قسم الشنايل ------------------
[code:1]Part : part # [/code:1]
أو
[code:1]Part : part $chan [/code:1]

أو
[code:1]Part : part $active [/code:1]

-----------------------------------------------------

بالنسبة لقائمة nicklist
عندما نختار على اسم اي شخص ونريد رفعه أونرا أو هوستا او حتى طرده
سنحتاج لمتغير اخر وهو
$$1
حيث سيتحول قيمته الى اسم الشخص المحدد

Owner : Mode # +q $$1


---------------------------------------------------------------------------

Query/caht
نستطيع الاستعانة بالمتغير $$1 لدلالة على اسم الشخص صاحب النافذه الذي تحادثه


----------------------------------------------------------------------------

انتهــــــــى

Dr.FaSHeL
20-08-2003, 07:42 AM
السلام عليكم ورحمة الله وبركاته...

شكرا استاذي البرق على الدرس ... ونحن في انتظار المزيد

ولكن لدي استفسار في جزئية وهي عندما اكون اونر اريد التحكم في قائمة الـ NickName List ظاهر للأستخدام واذا لم يكن اونر او هوست لا تظهر له القائمة.

واعتقد انها تتعلق بـ if ... اذا كان استفساري في غير وقتة انا في الانتظار درسة في وقتة المناسب... :roll:


اخوك // د.فااشل

البرق
20-08-2003, 07:59 AM
بسم الله الرحمن الرحيم
وبعد

أخي Dr.FaSHeL

بالنسبة لاظهار قائمة في حالة معينة واخفاءها في حالة عدم ورودها

أمرها بسيط جدا وهو كما تفضلت يجب لها اشتراط

وتكون اسلوبها بالطريقة التالية

[code:1]$iif($me isowner #,Owner) :/mode # +q $$1 [/code:1]

على افتراض انك تريد وضع خيار لاعطاء الأونر و تريد اظهاره فقط في حالة كونك مالكا للغرفة


و شرح السطر كالتالي :

$iif : أداة شرطية العائد منها قيمة حيث تركيبتها كالتالي
$iif(1 == 1,Yes,No)

اذا كان الاشتراط الأول صحيحا فاعطني الاجابة الأولى : Yes و إلا اعطني الاجابة الثانية No

$me : وهو يتعلق بصاحب الاسكريبت حيث بما اني سأطلب من الاسكريبت دراسة وضعي هل أنا اونر أم لا فاحتاج ان ارمز بهذه لنفسي .

isowner : اداة استفسار هل أنا أونر ؟
و يقابلها !isowner

# : و تدل على الغرفة المراد اختبار وضعي فيها

.:. الشطر الأول من أمر iif ترجمته .. اذا كنت أنا أونرا بالغرفة الفلانية

بعد ذلك سيقوم بفعل الشطر الثاني لو كان صحيحا والا سيقوم بفعل الشطر الثالث اذا لم يكن ذلك .. و في حالتنا هذه لا يوجد اي عمل اذا لم أكن أونر فلذلك تجاهلناه


و نحن هنا نستقبل الاستفسارات جميعها وبأي وقت أخي


انتهى