´«ÆæNPC½Å±¾·Ç·¨×Ö·û¹ýÂËʵս£º@@InPutStringÊäÈëÀ¹½ØÓëCheckStrLen/FilterListÈ«Á´Â·

À´Ô´£º ×÷Õߣº µã»÷£º
@@InPutString Ö¸Áî´¥·¢ºó¿Í»§¶Ëµ¯Îı¾ÊäÈë¿ò£¬Íæ¼Ò¼ÈëÄÚÈÝдÈë S ±äÁ¿£¨S0–S99£©£¬ºóÐø½Å±¾Í¨¹ý <$STR(SX)> ¶ÁÈ¡¡£ÕâÌõÁ´Â·Ã»ÓÐÈκÎÄÚÖÃתÒå£¬Íæ¼ÒÊäÈë |¡¢/¡¢\¡¢<¡¢>¡¢$¡¢@¡¢½Å±¾¹Ø¼ü×Ö¡¢ÏµÍ³ÃüÁî×Ö·û´®£¬¶¼»áÔ­Ñù½øÈë±äÁ¿¡£Èç¹û·þÎñ¶ËÂß¼­ÓøñäÁ¿Æ´½ÓÊý¾Ý¿â²éѯ¡¢Ð´ TXT ¼Ç¼¡¢×ö EQUAL/CHECKLEVELEX Ö®ÍâµÄ×Ö·û´®±È¶Ô£¬ÔàÊý¾ÝÖ±½Ó´©Í¸¡£¹ýÂ˱ØÐëÔÚ“»Ø³µÈ·ÈϺó¡¢ÒµÎñÂß¼­Ç°”ÕâÒ»¶ÎÍê³É£¬²»ÄÜÒÀÀµ¿Í»§¶Ëµ¯´°×ÔÉíµÄÏÞÖÆ¡£

Ò»¡¢ÒýÇæ¼¶¹ýÂËÁÐ±í£¨µÚÒ»µÀÕ¢£©

Hero ÒýÇæÂ·¾¶£ºM2Server → ²é¿´ → ÁбíÐÅÏ¢ → ÆäËûÉèÖà → ×Ö·û¹ýÂË£¬»ò±à¼­ Mir200\Envir\GuildRankNameFilter.txt£¨²¿·Ö°æ±¾¶Á´ËÎļþ£©¡£Ìí¼ÓÿÐÐÒ»¸öÃô¸Ð´Ê»ò·Ç·¨×Ö·ûÐòÁУ¬Íæ¼Ò¼ÈëÃüÖк󲻽øÈë»Øµ÷¶Î£¬Ö±½ÓÌø×ª [@IsInFilterList]£¨3K ÒýÇæÌø [@MsgFilter]£©¡£

ÅäÖÃʾÀý£¨GuildRankNameFilter.txt£©£º

@
@@
~
..
\
/
<
>
|
$
script
call
goto
exec


»Øµ÷´¦Àí£º
[@IsInFilterList]
#SAY
ÄãÊäÈëµÄÄÚÈݰüº¬·Ç·¨×Ö·û£¬ÇëÖØÐÂÊäÈ룡\
<·µ»Ø/@Main>


3K ÒýÇæ¶ÔÓ¦£º
[@MsgFilter]
#SAY
ÊäÈëÄÚÈÝÃüÖйýÂËÁÐ±í£¬ÇëÖØÐÂÊäÈ룡\
<·µ»Ø/@Main>


×¢Ò⣺¹ýÂËÁбíÊÇÈ«¾ÖÉúЧµÄ£¬²»½öÀ¹ @@InPutString£¬ÐлáÃû³Æ´´½¨¡¢½ÇÉ«¸ÄÃû¡¢ÁÄÌìÆµµÀÒ²»á×ßͬһÕÅ±í¡£ÍùÀï¼Ó @¡¢$¡¢<¡¢>¡¢| ÕâЩ½Å±¾Óï·¨·ûºÅÊÇ×îµÍÏ޶ȵķÀ»¤¡£

¶þ¡¢»Øµ÷¶ÎÄÚ±äÁ¿ÅпÕÓ볤¶ÈУÑ飨µÚ¶þµÀÕ¢£©

Hero ÒýÇæ @@InPutStringX »Øµ÷¶ÎÃûΪ [@CallInPutStringX]£¬3K Ϊ [@InPutStringX]¡£½øÈë»Øµ÷ºóµÚÒ»¼þÊÂÊÇÅпպͳ¤¶È£¬Óà CheckStrLen Ö¸Á
[@CallInPutString10]
#IF
CheckStrLen <$STR(S10)> 1
#ACT
MESSAGEBOX ÊäÈë²»ÄÜΪ¿Õ£¡
GOTO @Main
#IF
CheckStrLen <$STR(S10)> 16
#ACT
MESSAGEBOX ÊäÈ볤¶È²»Äܳ¬¹ý16¸ö×Ö·û£¡
GOTO @Main
#ELSE
#ACT
; ͨ¹ýУÑ飬½øÈëÒµÎñÂß¼­
GOTO @ProcessInput


CheckStrLen Óï·¨£ºCheckStrLen <×Ö·û´®> ³¤¶ÈÖµ£¬²»´ø±È½Ï·ûʱÅж¨“´óÓÚµÈÓڸó¤¶È”£»²¿·ÖÒýÇæÖ§³Ö CheckStrLen <×Ö·û´®> < 5 ±íʾСÓÚ5¡£Êµ¼Êд·¨ÒÔÒýÇæ°æ±¾Îª×¼£¬±£ÊØ×ö·¨ÊÇÓÃÁ½´Î CheckStrLen ·Ö±ð¿¨ÏÂÏÞºÍÉÏÏÞ¡£

Èý¡¢×Ö·û¼¶Öð×ÖɨÃ裨µÚÈýµÀÕ¢£©

ÒýÇæ¹ýÂËÁбíÖ»ÄÜ×ö×Ó´®Æ¥Å䣬²»ÄÜ×ö°×Ãûµ¥¡£Èç¹ûÐèÒªÑϸñÏÞÖÆ“Ö»ÔÊÐíÖÐÎÄ+×Öĸ+Êý×Ö”£¬Óýű¾Öð×Ö·û±éÀú S ±äÁ¿£¬ÅäºÏ CheckContainsStr »ò EQUAL ±È¶Ô ASCII ·¶Î§¡£ÓÉÓÚ´«Ææ½Å±¾Ã»ÓÐÕýÔò£¬Ö»ÄÜÓñ¿°ì·¨——°ÑÊäÈë²ð³Éµ¥×Ö·ûÖðÒ»±È¶Ô£º
[@ProcessInput]
; ¼ÙÉè S10 ÒÑͨ¹ý³¤¶ÈУÑé
; Óà MOV S11 = Ê××Ö·û£¬Ñ­»·ÅжÏÊÇ·ñÔÚ°×Ãûµ¥ÄÚ
; ÒÔÏÂΪÂß¼­Ê¾Ò⣬ʵ¼ÊÒýÇæÐè½èÖú×Ô¶¨Òå±äÁ¿+Ìø×ªÊµÏÖ

#IF
CheckContainsStr <$STR(S10)> @
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û@£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> <
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û<£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> >
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û>£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> |
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û|£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> $
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û$£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> \
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û\£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S10)> /
#ACT
MESSAGEBOX °üº¬·Ç·¨×Ö·û/£¡
GOTO @Main
#ELSE
#ACT
GOTO @SaveToDB


CheckContainsStr Ó÷¨£ºCheckContainsStr <Ô´×Ö·û´®> ×Ó´®£¬ÃüÖзµ»ØÕæ¡£ÖðÌõдËäÈ»Èß³¤£¬µ«¸²¸ÇÍêÈ«£¬ÇÒÿÌõ¶¼Äܸø³ö¾«È·´íÎóÌáʾ¡£

ËÄ¡¢Êý¾Ý¿âдÈëǰµÄ¶þ´ÎУÑé

Èç¹ûÊäÈëÄÚÈÝ×îÖÕҪд TXT »òÈë¿â£¨Èç½ÇÉ«¸ÄÃû¡¢Ðлṫ¸æ¡¢×Ô¶¨Ò峯ºÅ£©£¬ÔÚ WRITETEXT/WRITELINE ֮ǰÔÙ¼ÓÒ»µÀ EQUAL ±È¶Ô£¬·ÀÖ¹¿Õ´®»ò´¿¿Õ¸ñ£º
[@SaveToDB]
#IF
EQUAL S10
#ACT
MESSAGEBOX ÄÚÈÝΪ¿Õ£¬¾Ü¾øÐ´È룡
GOTO @Main
#ELSE
#ACT
WRITETEXT ..\Envir\UserData\Titles.txt <$STR(S10)>
SENDMSG 6 ³ÆºÅ[<$STR(S10)>]ÒѼǼ£¡
CLOSE


Îå¡¢²»Í¬ÒýÇæµÄ»Øµ÷²îÒìËÙ²é

ÏîÄ¿ Hero ÒýÇæ 3K ÒýÇæ

´¥·¢Ö¸Áî @@InPutStringX @@InPutStringX

»Øµ÷¶ÎÃû [@CallInPutStringX] [@InPutStringX]

¹ýÂËÃüÖжΠ[@IsInFilterList] [@MsgFilter]

±äÁ¿·¶Î§ S0–S99£¨²¿·ÖÖ§³ÖÀ©Õ¹£© S0–S99

Åпշ½Ê½ CheckStrLen <$STR(SX)> 1 EQUAL SX »ò CheckStrLen

¹ýÂËÁбíλÖà ÁбíÐÅÏ¢→ÆäËûÉèÖà / GuildRankNameFilter.txt ²å¼þÏûÏ¢¹ýÂËÁбí

Áù¡¢ÍêÕûÈý²ã¹ýÂËʾÀý£¨Hero ÒýÇæ£¬½ÇÉ«×Ô¶¨Ò峯ºÅ£©
[@Main]
ÇëΪ½ÇÉ«É趨һ¸ö³ÆºÅ£º<ÊäÈë³ÆºÅ/@InputTitle>\

[@InputTitle]
@@InPutString20 ÇëÊäÈë³ÆºÅ£¨1-10×Ö£¬½öÏÞÖÐÎÄ/×Öĸ/Êý×Ö£©£º

[@CallInPutString20]
; µÚÒ»²ã£ºÒýÇæ¹ýÂËÁбíÒÑ×Ô¶¯À¹½Ø£¬ÃüÖÐ×ß [@IsInFilterList]
#IF
CheckStrLen <$STR(S20)> 1
#ACT
MESSAGEBOX ³ÆºÅ²»ÄÜΪ¿Õ£¡
GOTO @Main
#IF
CheckStrLen <$STR(S20)> 11
#ACT
MESSAGEBOX ³ÆºÅ²»Äܳ¬¹ý10¸ö×Ö·û£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> @
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬@·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> <
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬<·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> >
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬>·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> |
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬|·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> $
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬$·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> \
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬\·ûºÅ£¡
GOTO @Main
#IF
CheckContainsStr <$STR(S20)> /
#ACT
MESSAGEBOX ³ÆºÅ²»Äܰüº¬/·ûºÅ£¡
GOTO @Main
#ELSE
#ACT
WRITETEXT ..\Envir\UserData\Title_<$USERNAME>.txt <$STR(S20)>
SENDMSG 6 ³ÆºÅ[<$STR(S20)>]É趨³É¹¦£¡
CLOSE

[@IsInFilterList]
#SAY
ÊäÈëµÄ³ÆºÅ°üº¬ÏµÍ³±£Áô×Ö·û£¬Çë¸ü»»ÄÚÈÝ£¡\
<ÖØÐÂÊäÈë/@Main>


Æß¡¢³£¼û¹ÊÕÏÅŲé

• ÊäÈëºó½Å±¾ÎÞÏìÓ¦£º¼ì²é»Øµ÷¶ÎÃûÊÇ·ñ°´ÒýÇæÐ´¶Ô£¨Hero © Call¡¢3K ¶à Call ¶¼»áËÀ£©

• ¹ýÂËÁбí¼ÓÁ˴ʵ«²»ÉúЧ£ºÈ·ÈÏ M2 ÊÇ·ñÖ´ÐÐÁË“ÖØÐ¼ÓÔØÁбíÐÅÏ¢”»òÖØÆô£»GuildRankNameFilter.txt ¸ÄÍêÐèÖØÔØ

• CheckContainsStr ²»Ê¶±ðÖÐÎÄ£º²¿·ÖÀϰ汾ÒýÇæÖ»Ö§³Öµ¥×Ö½Ú×Ö·ûÆ¥Å䣬ÖÐÎÄÐèÓà CheckStrLen ¼ä½ÓÏÞÖÆ³¤¶È+¹ýÂËÁÐ±í¶µµ×

• ±äÁ¿¶Á³öÀ´ÊǿգºÈ·ÈÏ @@InPutStringX µÄ X Óë»Øµ÷¶ÎÀï¶ÁµÄ SX ±àºÅÒ»Ö£¬±ðд³É @@InPutString20 È´ÔÚ [@CallInPutString20] Àï¶Á S10

• ¹ýÂËÁбíÎóɱÕý³£ÊäÈ룺ÖðÌõÅŲ飬°Ñ³£Óñêµã£¨Èç¿Õ¸ñ¡¢Ï»®Ïߣ©´Ó¹ýÂËÎļþÖÐÒÆ³ý£¬¸ÄÓýű¾²ã CheckContainsStr ¾«È·À¹½Ø

@@InPutString µÄ¹ýÂ˲»Êǵ¥Ò»Ö¸ÁîÄܽâ¾öµÄ£¬±ØÐëÈý²ãµþ¼Ó£ºÒýÇæ¹ýÂËÁбíÀ¹Óï·¨·ûºÅºÍÃô¸Ð´Ê → »Øµ÷¶Î CheckStrLen ¿¨³¤¶ÈºÍÅÐ¿Õ → CheckContainsStr Öð×Ö·û°×Ãûµ¥/ºÚÃûµ¥É¨Ãè → дÈëǰ EQUAL ×îÖÕÈ·ÈÏ¡£ÉÙÈκÎÒ»²ã£¬ÊäÈëÁ´Â·¶¼´æÔÚ±»ÔàÊý¾Ý»÷´©µÄ¿ÉÄÜ¡£