µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

¶À¼Ò´³¹ØµØÍ¼½Å±¾½Ì³Ì£º1ÈË1²ã+ÏÞʱ30·ÖÖÓ+ÖÇÄÜË¢¹Ö£¨¸½È«Ì׽ű¾£©

Èȶȣº
Íæ¼Òµã»÷Èë¿ÚNPC → ¼ì²éÊÇ·ñÓпÕÏвã → ·ÖÅä×îµÍ¿ÕÏвã → ´«ËͽøÍ¼ + Æô¶¯¼ÆÊ±Æ÷
½øÈëºóÁ¢¼´Ë¢BOSS → Íæ¼Òɱ¹Ö → µã»÷NPC½øÈëÏÂÒ»²ã

À뿪µ±Ç°²ãʱ£ºÇå³ýÍæ¼Ò±äÁ¿ → ÖØÖòã״̬Ϊ"¿ÕÏÐ" → ×¼±¸Ó­½ÓÏÂÒ»Î»Íæ¼Ò

ÐÂÍæ¼Ò½øÈë → ϵͳ¼ì²â¿ÕÏвã → ×Ô¶¯Ë¢Ð¶ÔÓ¦²ãBOSS

Ò»¡¢ Îļþ²¿ÊðλÖã¨ÒÔGEEÒýÇæÎªÀý£©
NPC½Å±¾£º MirServer\Mir200\Envir\Market_Def\ÃËÖØÊ¡-´³¹ØÊ¹Õß.txt (Èë¿ÚNPC)

µØÍ¼´¥·¢½Å±¾£º MirServer\Mir200\Envir\MapQuest_Def\QManage.txt (È«¾Ö¹ÜÀí¶¨Ê±Æ÷)

²ãµØÍ¼²ÎÊý£º MirServer\Mir200\Envir\MapInfo.txt (ÉèÖõØÍ¼ÏÞÖÆ²ÎÊý)

Ë¢¹ÖÎļþ£º MirServer\Mir200\Envir\MonGen.txt (³£¹æË¢¹Ö£¬µ«±¾·½°¸Ö÷ÒªÓýű¾Ë¢)

¶þ¡¢ ³¬Ïêϸ½Å±¾ÊµÏÖ£¨GEEÒýÇæÓï·¨£©

📍 ²½Öè1£º¶¨Òå´³¹ØµØÍ¼ÐÅÏ¢£¨MapInfo.txt£©

[TDG001 µÚÒ»²ã] SAFE DAY NORECALL NODEAL NORECONNECT(N) NOTALLOWUSEITEMS(»Ø³Ç¾í|Ëæ»ú´«Ë;í) INCGAMEPOINT(0/1) TIMELIMIT(30) NEEDHOLE
[TDG002 µÚ¶þ²ã] SAFE DAY NORECALL NODEAL NORECONNECT(N) ... TIMELIMIT(30) NEEDHOLE
... ͬÑù¸ñʽ¶¨ÒåµÚ3²ãµ½µÚ10²ã TDG003-TDG010

¹Ø¼ü²ÎÊý½âÊÍ£º

NOTALLOWUSEITEMS(»Ø³Ç¾í|Ëæ»ú´«Ë;í)£º½ûֹʹÓÃÌÓÅܵÀ¾ß

TIMELIMIT(30)£ºÏÞÖÆ±¾Í¼×î¶àÍ£Áô30·ÖÖÓ

NEEDHOLE£º±ØÐëͨ¹ý¶´¿Ú/NPC´«Ëͽø³ö£¨ÅäºÏ½Å±¾¿ØÖÆ£©

NORECONNECT(N)£ºµôÏßÖØÁ¬²»»ØµØÍ¼£¨·ÀÖ¹ÀûÓé¶´£©

📍 ²½Öè2£ºÈë¿ÚNPC½Å±¾ (ÃËÖØÊ¡-´³¹ØÊ¹Õß.txt)

[@Main]
if

act
ÏÔʾ´³¹ØÐÅÏ¢

SAY

<´³¹ØÊ¹Õß/SCOLOR=249>£ºÏëÌôÕ½Ê®ÖØÌì¹Ø£¿\ \
ÿ²ã½öÏÞÒ»ÈË£¬ÏÞʱ30·ÖÖÓ£¡\ \
³É¹¦Í¨¹Ø¿É»ñ¼«Æ·½±Àø£¡\ \
<ÎÒÒªÌôÕ½! / @EnterChallange >\ \
<ÅÅÐаñ / @ShowRank>\

[@EnterChallange]
IF
¼ì²éÍæ¼ÒÊÇ·ñÒÑÔÚ´³¹ØÏµÍ³ÖÐ

CHECKVAR HUMAN IsInTDG = 1
ACT

MESSAGEBOX [ʧ°Ü] ÄúÕýÔÚÌôÕ½ÖУ¡ÇëÏÈÍê³Éµ±Ç°²ãÌôÕ½£¡
BREAK

IF
³¢ÊÔÎªÍæ¼Ò·ÖÅäÒ»¸ö¿ÕÏвã

GetAvailTDGLevel
ACT
·ÖÅä³É¹¦£¨·µ»ØÖµÔÚP0£©

SETTING:
SETTING:
ÉèÖÃÍæ¼ÒËùÔÚ²ã±äÁ¿

SET HUMAN TDGLevel = <$STR(P0)>
SET HUMAN IsInTDG = 1
¼Ç¼½øÈëʱ¼ä£¨µ¥Î»£ºÃ룩

SET HUMAN TDGEnterTime = <$DATETIME>
´«ËÍÍæ¼Òµ½¶ÔÓ¦²ã

MAPMOVE TDG0<$STR(P0)>
·¢ËÍÌáʾ

SENDMSG 6 [ϵͳ] ÄãÒѽøÈëµÚ[<$STR(P0)>]²ã£¬ÏÞʱ30·ÖÖÓ£¡
ELSEACT
ËùÓв㶼ÂúÁË

MESSAGEBOX [ʧ°Ü] ËùÓйؿ¨ÒÑÂúÔ±£¡ÇëÉÔºóÔÙÊÔ£¡
BREAK

;--- ²éÕÒ×îµÍ¿ÕÏв㺯Êý ---
[@GetAvailTDGLevel()]
ACT
³õʼ»¯²ãºÅ P0 = 0 (δÕÒµ½)

SET P0 0
Ñ­»·¼ì²é1-10²ã״̬

LoopSet P1 1 10 1
; ¼ì²âÈ«¾Ö±äÁ¿G101-G110£¨1-10²ã״̬ 0=¿ÕÏÐ 1=Õ¼Óã©

CHECKVAR GLOBAL TDG_Status_<$STR(P1)> = 0
SET P0 <$STR(P1)> ; ÕÒµ½¿ÕÏв㣬¸³Öµ¸øP0

½«¸Ã²ã״̬±ê¼ÇΪռÓÃ

SET GLOBAL TDG_Status_<$STR(P1)> = 1
Ìø³öÑ­»·

BREAK
}

·µ»ØP0£¨0±íʾÎÞ¿ÕÏУ¬1-10±íʾ²ãºÅ£©

RETURN P0

📍 ²½Öè3£ºÃ¿²ãͨ¹ØNPC (·ÅÔÚÿ²ãµØÍ¼ÀÀýÈç TDG001-NPC.txt)

[@Main]
IF
¼ì²éÍæ¼ÒÊÇ·ñÔÚ±¾²ã£¨·ÀÖ¹¿ç²ãµã£©

CHECKVAR HUMAN TDGLevel = 1 ; ×¢Ò⣺µÚ2²ã¾Í¸Ä³É2£¬ÒÔ´ËÀàÍÆ
SAY

<ÊØ¹ØÌ콫/SCOLOR=250>£º»÷°Ü±¾²ãBOSS·½¿ÉǰÍùÏÂÒ»¹Ø£¡\ \
<BOSSË¢ÐÂ״̬£º>{Ŀǰ´æ»î|/SCOLOR=254}\ \
<À뿪ÌôÕ½/@Exit> | <ÏÂÒ»¹Ø/@NextLevel>\

[@NextLevel]
IF
¼ì²é±¾²ãBOSSÊÇ·ñËÀÍö£¨¸ù¾ÝÒýÇæ²»Í¬£¬¿ÉÒÔÓñäÁ¿¿ØÖÆ£©

CHECKVAR GLOBAL TDG1_BOSS_Alive = 0 ; 0=ËÀÍö
ACT
Çå³ýµ±Ç°²ã±äÁ¿

SET HUMAN TDGLevel = 0
¹Ø±Õ¼ÆÊ±Æ÷

DELTIMER TDGTimer
ÉèÖÃÍæ¼Ò½øÈëÏÂÒ»²ã״̬

SET HUMAN IsInTDG = 1
SET HUMAN TDGLevel = 2 ; ½øÈëµÚ2²ã
SET HUMAN TDGEnterTime = <$DATETIME> ; ÖØÖüÆÊ±
±ê¼Ç±¾²ãΪ¿ÕÏÐ״̬

SET GLOBAL TDG_Status_1 = 0
´«ËÍÖÁÏÂÒ»²ã

MAPMOVE TDG002
Ìáʾ

SENDMSG 6 [ϵͳ] ÄãÒѽøÈëµÚ2²ã£¬ÏÞÊ±ÖØÐ¼ÆË㣡
ELSEACT

MESSAGEBOX [ʧ°Ü] BOSSÉÐδ»÷°Ü£¡
BREAK

[@Exit]
IF

ACT
µ÷Óù«¹²Í˳öº¯Êý£¨ÔÚQManage.txtÀïʵÏÖ£©

Gmexecute Í˳ö´³¹Ø

📍 ²½Öè4£ºÈ«¾Ö¹ÜÀí´¥·¢£¨QManage.txt£©

= Íæ¼Ò½øÈëÈκδ³¹ØµØÍ¼Ê±´¥·¢Ë¢¹Ö =

[@EnterMap]
IF
¼ì²éÊÇ·ñ½øÈë´³¹ØµØÍ¼£¨¸ñʽ£ºTDG001 - TDG010£©

ISONMAP TDG0
ACT
»ñÈ¡Íæ¼ÒËùÔÚ²ãºÅ£¨Èç1£©

GetUserVar Human TDGLevel P0
Á¢¼´Ë¢³ö±¾²ãBOSS

PARAM1 TDG0<$STR(P0)> ; µØÍ¼Ãû
PARAM2 ±¾²ãBOSSÃû³Æ ; Ìæ»»ÎªÕæÊµBOSSÃû
PARAM3 50 ; X×ø±ê
PARAM4 50 ; Y×ø±ê
PARAM4 1 ; ·¶Î§
PARAM5 1 ; ÊýÁ¿
MONGEN ; ¹Ø¼üË¢¹ÖÃüÁî
±ê¼Ç±¾²ãBOSSΪ´æ»î״̬(²ãºÅ±äÁ¿)

SET GLOBAL TDG<$STR(P0)>_BOSS_Alive = 1
Æô¶¯Íæ¼ÒרÊô¼ÆÊ±Æ÷

SETONTIMER 1 1 TDGTimer
= ¹Ø¼üÏÞʱÓë¼à¿Ø¼ÆÊ±Æ÷ =

[@OnTimerTDGTimer]
if
¼ì²éÍæ¼ÒÊÇ·ñ»¹ÔÚ´³¹ØµØÍ¼ÖÐ

ISONMAP TDG0
ACT
¼ÆËãÍ£Áôʱ¼ä£¨Ã룩

GetUserVar Human TDGEnterTime P0
CALCULATION_TIME_PASSED: SET P1 = <DATETIME> - <STR(P0)>
¼ì²éÊÇ·ñ³¬Ê±£¨30*60=1800Ã룩

if

LARGE P1 1799
ACT
³¬Ê±´¦Àí£¡Ì߻ذ²È«Çø

MESSAGEBOX [³¬Ê±] Í£Áôʱ¼äÒѵ½30·ÖÖÓ£¡
Gmexecute Í˳ö´³¹Ø
BREAK
endif
= ͳһÍ˳ö´³¹Øº¯Êý£¨ÖØÒª£¡£© =

[@Exit_Challenge]
ACT
»ñÈ¡Íæ¼Òµ±Ç°²ã

GetUserVar Human TDGLevel P0
Èç¹û²ãºÅÓÐЧ£¨1-10£©£¬ÖØÖÃ״̬

if

RANGE <$STR(P0)> 1 10
ACT
Çå³ýÍæ¼Ò´³¹Ø±ê¼Ç

SET HUMAN IsInTDG = 0
SET HUMAN TDGLevel = 0
DELTIMER TDGTimer ; ¹Ø±Õ¼ÆÊ±Æ÷
±ê¼Ç±¾²ãΪ¿ÕÏÐ

SET GLOBAL TDG_Status_<$STR(P0)> = 0
´«ËÍ»ØÍÁ³Ç°²È«Çø

MAPMOVE 3 330 330
SENDMSG 6 [ϵͳ] ÄãÒѱ»´«Ëͻذ²È«Çø£¡
ÌØÊ⣺Èç¹ûÍæ¼ÒÊÇÕý³£Í¨¹ØÏÂÒ»²ã£¬´Ëº¯Êý»á±»¸²¸Ç±äÁ¿

´Ë´¦½ö´¦ÀíÒì³£Í˳ö£¨³¬Ê±/Ö÷¶¯À뿪£©

ELSEACT
·Ç´³¹Ø×´Ì¬µ÷Óô˺¯ÊýÔòºöÂÔ

BREAK

📍 ²½Öè5£ºBOSSËÀÍö´¥·¢£¨MonItemsĿ¼ÏµÄBOSSÅäÖã©

·¾¶£ºMir200\Envir\MonItems\±¾²ãBOSSÃû³Æ.txt

#IF

#ACT
ÖØÒª£¡±ê¼Ç±¾²ãBOSSËÀÍö

SET GLOBAL TDG1_BOSS_Alive = 0 ; ×¢ÒâÐ޸ĶÔÓ¦²ãºÅ
SENDMSG 6 [È«·þ] µÚ1²ãÊØ¹ØBOSSÒѱ»ÓÂÊ¿»÷°Ü£¡

Èý¡¢ ºËÐÄ»úÖÆ×ܽá±í
¹¦ÄÜ ÊµÏÖ·½Ê½ ¹Ø¼ü±äÁ¿/ÃüÁî

µ¥²ãÈËÊý¿ØÖÆ È«¾Ö±äÁ¿G±ê¼Ç²ã״̬(G101-G110) TDG_Status_X (X=²ãºÅ)
ÏÞʱ30·ÖÖÓ Íæ¼Ò±äÁ¿¼Ç¼½øÈëʱ¼ä + OnTimerÿÃë¼ì²é HUMAN TDGEnterTime + <$DATETIME>
¶¯Ì¬Ë¢¹Ö Íæ¼Ò½øÈëµØÍ¼Ê¼þ + MONGENÃüÁî @EnterMap + MONGEN
²ã×´Ì¬ÖØÖà ͨ¹Ø»òÍ˳öʱÇå³ýÍæ¼Ò²ã±äÁ¿£¬ÖØÖÃG±ê¼Ç SET GLOBAL TDG_Status_X=0
·À×÷±× µØÍ¼²ÎÊý½ûÓþíÖá + µôÏß²»»ØÍ¼ + NPCУÑéÍæ¼ÒËùÔÚ²ã NOTALLOWUSEITEMS + NORECONNECT(N)
BOSS״̬¸ú×Ù È«¾Ö±äÁ¿¼Ç¼´æ»î״̬£¬ËÀÍöʱ¸üРTDGX_BOSS_Alive

ËÄ¡¢ ½Å±¾µ÷ÊÔ¼¼ÇÉ
±äÁ¿²é¿´£º ÓÎÏ·ÖÐÊäÈë @ViewGVar ²é¿´È«¾Ö±äÁ¿£¬@ViewSVar ²é¿´¸öÈ˱äÁ¿

ʵʱ²âÊÔ£º

// Ç¿ÖÆ½øÈëµÚ1²ã£¨²âÊÔÓã©
#ACT
SET HUMAN TDGLevel = 1
SET HUMAN IsInTDG = 1
MAPMOVE TDG001

³£¼û´íÎóÅŲ飺

BOSS²»Ë¢Ð£º ¼ì²é@EnterMapÊÇ·ñ´¥·¢£¬×ø±êÊÇ·ñÓÐЧ

³¬Ê±ÎÞЧ£º È·ÈÏQManage.txt¼ÓÔØ£¬<$DATETIME>ÊÇ·ñÕý³£·µ»ØÃëÊý

²ã״̬»ìÂÒ£º ÓÃ@ViewGVar²é¿´G101-G110µÄÖµÊÇ·ñÕý³£ÖØÖÃ

NPC²»ÏìÓ¦£º ¼ì²éNPCÎļþÃûÊÇ·ñÓëMapInfo.txtÖеØÍ¼ÃûÆ¥Åä

Îå¡¢ ×îÖÕЧ¹ûÄ£Äâ

Íæ¼ÒAµã»÷Èë¿ÚNPC£º
ϵͳɨÃèG101-G110£¬·¢ÏÖG101=0£¨¿ÕÏУ©

´«ËÍAµ½µÚ1²ã£¬Í¬Ê±£º

ÉèÖà G101 = 1£¨Õ¼Óã©

ˢеÚ1²ãBOSS

Æô¶¯30·ÖÖÓµ¹¼ÆÊ±
A»÷°ÜBOSSºóµãNPC½øÈëµÚ2²ã£º

ÖØÖÃG101=0

ˢеÚ2²ãBOSS£¨AרÓã©

ÖØÖÃAµÄ¼ÆÊ±Æ÷

´ËÊ±Íæ¼ÒBµã»÷NPC£º
ϵͳɨÃè·¢ÏÖG101=0£¨¿ÕÏУ©

´«ËÍBµ½µÚ1²ã£¬Á¢¼´Ë¢ÐÂרÊôBOSS

Á½È˶ÀÁ¢´³¹Ø£¬»¥²»¸ÉÈÅ

ͶÈëÔËӪǰÎñ±ØÈ«Á÷³Ì²âÊÔ10´ÎÒÔÉÏ£¡½¨ÒéÓòâÊÔÕ˺ÅÄ£Äâ¶àÈ˲¢·¢ÇÀÕ¼×ÊÔ´³ØÇé¿ö¡£