PDA

عرض كامل الموضوع : حل مشكلة التايمر مع الغرف التي تبدأ بالعلامة المئوية %



البرق
23-09-2003, 07:15 PM
بسم الله الرحمن الرحيم وبعد

[code:1]alias Remove% { return $iif($1- != $null,$iif($left($1,1) == %,$mid($1,3,$len($1)),$1-)) }
alias Add% { return $iif($1- != $null,$iif( ($left($1,1) != $chr(35)) && ($left($1,1) != $chr(38)) && ($left($1,1) != %),% $+ $chr(35) $+ $1-,$1-)) }

alias accessout { access $add%($1) add owner $ip }[/code:1]

المشكلة :
لا نستطيع أن نضع اي غرفة تبدأ بالعلامة المئوية داخل امر التايمر
مثال :
نريد وضع اكسس اونر للغرفة التي انا فيها وهي مخبأالذئب مره بعد عشر ثواني

الطريقة :
/.timer 1 10 access # add owner $ip

للأسف لن يقرأ الاسكريبت اسم القناة

لذلك
سوف اقوم بالتالي وما عليك الا تقليد ما فعلته مع تغيير ما يلزم

/.timer 1 10 accessout $Remove%(#)

alias accessout { access $Add%($1) add owner $ip }


شرح ما قمت فعله
# للدلالة على اسم الغرفة التي انا فيها ولتكن %#مخبأالذئب
سوف يدخل الامر بالطريقة التالي
/.timer 1 10 accessout مخبأالذئب
حيث وظيفة الدالة حذف أول رمزين من اسم القناة إن ابتدئت بالعلامة %
وسينفذ داخل امر AccessOut (حيث صنعت امرا بهذا الاسم) بالطريقة التالي
/access %#مخبأالذئب add owner وهنا سيوضع الاي بي الخاص بالشخص
حيث وظيفة الدالة تحويلها إلى وضع قناة
#

حيث أن
$Add% إضافة الرمزين %# إذا لم تكن تحتوي عليها اسم الغرفة و لم تكن أولها علامة الهاش # أو علامة الربط &
$Remove% لحذف الرمز % والذي يليه ان ابتدأ به الغرفة
------------------------------
$Add%(#السعودية) --------------->
#السعودية

$Add%(مخبأالذئب) ------>
%#مخبأالذئب

$Add%(%#مخبأالذئب) ----->
%#مخبأالذئب

--------------------------------------
$Remove%(#السعودية) ----------->
#السعودية

$Remove%(%#مخبأالذئب) --------->
مخبأالذئب


ملاحظة / هذا الأمر ليس مثالياً، بالصورة المطلوبة و يمكن تصنيع ما هو مثالي أكثر وهو متروك إلى فكرة المستخدم ، الذي يحتاجه .

البرق

السلطان
29-10-2003, 08:54 AM
البرق,

يعطيك ألف عافيه اخوي البرق. .

مجهود أكثر من رائع. .

يعطيك العافية. .

تحياتي