### Ò»¡¢Ë¢¹Ö»ú¹ÖÎïʵÏÖ·½°¸£¨Ä¸¹Ö²úÂÑ+Ê®Åú×Ô»Ù£©
#### 1. **ºËÐÄ˼·**
ͨ¹ýôá·çÒýÇæµÄ**¹ÖÎï´¥·¢½Å±¾**£¨`MonItems`Ŀ¼£©Óë**»úÆ÷È˽ű¾**£¨`Robot_def`Ŀ¼£©½áºÏ£¬ÊµÏÖÒÔϹ¦ÄÜ£º
- **ĸ¹Ö´æ»îʱÖÜÆÚÐÔÕÙ»½Ó×áÌ**£ºÀûÓùÖÎïËÀÍö´¥·¢»ò¹¥»÷´¥·¢Ê¼þ¡£
- **Åú´Î¼ÆÊýÆ÷ÏÞÖÆ**£ºÍ¨¹ý±äÁ¿¼Ç¼²úÂÑ´ÎÊý£¬´ïµ½10´Îºóĸ¹Ö×Ô»Ù¡£
- **¶¯Ì¬Ë¢¹Ö·¶Î§¿ØÖÆ**£ºÊ¹ÓÃ`MONGENEX`ÃüÁ¼û£©ÔÚĸ¹Ö×ø±ê¸½½üÉú³ÉÓ×áÌ¡£
---
#### 2. **¾ßÌå½Å±¾ÊµÏÖ**
**²½Öè1£º¶¨Òåĸ¹Ö´¥·¢½Å±¾**
ÔÚ`MonItems\ĸ¹ÖÃû³Æ.txt`ÖбàдÒÔÏÂÄÚÈÝ£º
```lua
[@Attack] --ĸ¹Ö±»¹¥»÷ʱ´¥·¢
#IF
RANDOM 50 --50%¸ÅÂÊ´¥·¢²úÂÑ
#ACT
MONGENEX <$MAP> <$X> <$Y> Ó×áÌÃû³Æ 5 10 1 --ÔÚĸ¹ÖÖÜΧ5x10·¶Î§ÄÚÉú³É1Ö»Ó×áÌ
INC GLOBAL ²úÂÑ´ÎÊý 1 --È«¾Ö±äÁ¿¼Ç¼²úÂÑÅú´Î
SENDMSG 6 "ĸ¹ÖÒѲúÂѵÚ<$GLOBAL(²úÂÑ´ÎÊý)>ÅúÓ×áÌ£¡"
BREAK
[@Die] --ĸ¹ÖËÀÍöʱ´¥·¢
#IF
CHECKVAR GLOBAL ²úÂÑ´ÎÊý = 10 --¼ì²âÊÇ·ñÒѲúÂÑ10´Î
#ACT
KILL --Ç¿ÖÆÉ±ËÀĸ¹Ö£¨·ÀֹδÂú10´ÎʱËÀÍö£©
SENDMSG 6 "ĸ¹ÖÒÑÍê³É10´Î²úÂÑ£¬×Ô¶¯ÏûÍö£¡"
#ELSEACT
MISSION <$MAP> <$X> <$Y> --ÖØÖÃĸ¹ÖË¢ÐÂ
```
**²½Öè2£ºÈ«¾Ö¼ÆÊýÆ÷¹ÜÀí**
ÔÚ`Robot_def\AutoRunRobot.txt`ÖÐÌí¼Ó¶¨Ê±¼ì²âÂß¼£¨²Î¿¼£©£º
```lua
#AutoRun NPC SEC 10 @¼ì²âĸ¹Ö״̬
```
ÔÚ`Robot_def\RobotManage.txt`Öа󶨼ì²â½Å±¾£º
```lua
[@¼ì²âĸ¹Ö״̬]
#IF
CHECKVAR GLOBAL ²úÂÑ´ÎÊý >= 10 --´ïµ½10´ÎºóÖØÖÃ
#ACT
CALCVAR GLOBAL ²úÂÑ´ÎÊý = 0
UPDATEVAR GLOBAL ²úÂÑ´ÎÊý
```
---
#### 3. **¹Ø¼ü²ÎÊý˵Ã÷**
- **`MONGENEX`ÃüÁî**£ºÖ§³Ö×ø±êÆ«ÒÆ¡¢ÊýÁ¿¡¢·¶Î§¡£
- **È«¾Ö±äÁ¿`GLOBAL`**£º¿çµØÍ¼³Ö¾Ã»¯¼ÆÊýÆ÷¡£
- **`KILL`Ç¿ÖÆÏú»Ù**£º·Àֹĸ¹ÖδÍê³ÉÈÎÎñʱ±»Íæ¼Ò»÷ɱ¡£
---
### ¶þ¡¢µØÍ¼¼ÆÊ±Æ÷ʵÏÖ·½°¸£¨½ø³ö¼ÆÊ±+¶¯Ì¬Í³¼Æ£©
#### 1. **ºËÐÄ˼·**
ÀûÓÃôá·çÒýÇæµÄ**µØÍ¼Ê¼þ´¥·¢Æ÷**£¨`MapEvent.txt`£©Óë**¸öÈ˼ÆÊ±±äÁ¿**£¨`<$STR(N)>`£©£¬ÊµÏÖÒÔϹ¦ÄÜ£º
- **½øÈëµØÍ¼×Ô¶¯¼Ç¼ʱ¼ä´Á**£ºÍ¨¹ý`@EnterMap`ʼþ´¥·¢¡£
- **Í˳öµØÍ¼¼ÆËãÍ£Áôʱ³¤**£ºÍ¨¹ý`@LeaveMap`ʼþ¼ÆËãʱ¼ä²î¡£
- **¼ÆÊ±½á¹ûÏÔʾÓë´æ´¢**£ºÖ§³Ö´æÈëÍæ¼Ò×Ô¶¨Òå±äÁ¿»òÊý¾Ý¿â¡£
---
#### 2. **¾ßÌå½Å±¾ÊµÏÖ**
**²½Öè1£ºµØÍ¼Ê¼þÅäÖÃ**
ÔÚ`MapEvent.txt`ÖÐΪĿ±êµØÍ¼Ìí¼Óʼþ£º
```lua
[µØÍ¼Ãû³Æ]
@EnterMap=@¿ªÊ¼¼ÆÊ±
@LeaveMap=@½áÊø¼ÆÊ±
```
**²½Öè2£º¼ÆÊ±Âß¼½Å±¾**
ÔÚ`QuestDiary\¼ÆÊ±Æ÷.txt`Öбàд£º
```lua
[@¿ªÊ¼¼ÆÊ±]
#ACT
MOV S$½øÈëʱ¼ä <$DATETIME> --¼Ç¼½øÈëʱ¼ä´Á
SENDMSG 6 "ÄúÒѽøÈëµØÍ¼£¬¼ÆÊ±¿ªÊ¼£¡"
[@½áÊø¼ÆÊ±]
#ACT
MOV S$À뿪ʱ¼ä <$DATETIME>
CALCVAR S$Í£Áôʱ³¤ = <$STR(S$À뿪ʱ¼ä)> - <$STR(S$½øÈëʱ¼ä)> --¼ÆËãʱ¼ä²î£¨Ã룩
SENDMSG 6 "ÄúÔÚµØÍ¼Í£ÁôÁË<$STR(S$Í£Áôʱ³¤)>Ã룡"
```
---
#### 3. **¸ß¼¶À©Õ¹¹¦ÄÜ**
- **ÀۼƼÆÊ±´æµµ**£º½«`<$STR(S$Í£Áôʱ³¤)>`´æÈë`<$USERID>.txt`¸öÈ˵µ°¸¡£
- **ÏÞʱÈÎÎñ³Í·£**£ºÈô³¬Ê±Ôò´¥·¢¿ÛѪ»ò´«ËÍ£º
```lua
#IF
LARGE <$STR(S$Í£Áôʱ³¤)> 600 --³¬¹ý10·ÖÖÓ
#ACT
HUMANHP - 50
SENDMSG 6 "Í£Áô³¬Ê±£¬ÉúÃüÖµ-50£¡"
```
---
### Èý¡¢¼æÈÝÐÔÓëÓÅ»¯½¨Òé
#### 1. **ÒýÇæÊÊÅäÐÔÑéÖ¤**
- **Î÷ÄÏôá·çÒýÇæÖ§³Ö**£ºÉÏÊö½Å±¾»ùÓÚ`MONGENEX`¡¢`CALCVAR`µÈÐÂÃüÁî¡£
- **±äÁ¿³åÍ»¹æ±Ü**£ºÊ¹ÓÃ`GLOBAL`ºÍ`S$`Ç°×ºÇø·ÖÈ«¾ÖÓëÁÙʱ±äÁ¿¡£
#### 2. **ÐÔÄÜÓÅ»¯·½°¸**
- **Ë¢¹ÖƵÂÊ¿ØÖÆ**£ºÍ¨¹ý`AutoRunRobot.txt`ÉèÖÃ10Ãë¼ì²âÖÜÆÚ¡£
- **ÄÚ´æÇåÀí»úÖÆ**£ºÎÞÈ˵ØÍ¼×Ô¶¯Çå³ýÓ×áÌ£º
```lua
#IF
CHECKMAPHUMANCOUNT µØÍ¼Ãû³Æ = 0
#ACT
CLEARMAPMON µØÍ¼Ãû³Æ Ó×áÌÃû³Æ
```
#### 3. **µ÷ÊÔÓëÈÕÖ¾¼à¿Ø**
- **M2ServerÈÕÖ¾**£º¼ì²é`M2Server.exe`±¨´í£¨Èç·¾¶´íÎ󣬲ο¼£©¡£
- **Íæ¼ÒÖ¸Áî²âÊÔ**£ºÌí¼Ó`@Test`ÃüÁîÊÖ¶¯´¥·¢¼ÆÊ±Âß¼¡£
---
### ËÄ¡¢×ܽáÓë×ÊÔ´ÍÆ¼ö
1. **¹¤¾ßÍÆ¼ö**£ºÊ¹ÓÓÉÙÒ¯´«Ææ¹¤¾ßÏ䔿ìËÙÅäÖÃÖÇÄÜË¢¹ÖÂß¼¡£
2. **ѧϰ×ÊÁÏ**£º²Î¿¼¡¶ôá·çÒýÇæ°ïÖúÎĵµ¡·ºÍ¡¶MonGen´úÂëÏê½â¡·¡£
3. **ÉçÇøÖ§³Ö**£º·ÃÎÊGMÏÂÔØÕ¾»ñÈ¡×îнű¾Ä£°å¡£
ͨ¹ýÉÏÊö·½°¸£¬¿ÉÍêÕûʵÏÖ“²úÂÑ×Ô»ÙË¢¹Ö»ú”Óë“¶¯Ì¬µØÍ¼¼ÆÊ±Æ÷”£¬Âú×ã±ä̬´«ÆæÍæ·¨ÐèÇó¡£ÈôÐè½øÒ»²½ÓÅ»¯£¬¿É½áºÏµØÍ¼²ÎÊý£¨`TimeMap`£©ºÍ¹ÖÎﱬÂÊÁª¶¯¡£
#### Ò»¡¢ÒýÑÔ
ÔÚ¡¶´«Ææ2¡·Õâ¿î¾µäµÄ¶àÈËÔÚÏß½ÇÉ«°çÑÝÓÎÏ·£¨MMORPG£©ÖУ¬Í¨¹ý×Ô¶¨Òå·þÎñÆ÷ÉèÖÃÀ´ÔöÇ¿ÓÎÏ·ÌåÑéÊÇÒ»ÖÖ³£¼ûµÄ·½Ê½¡£±¾ÎĽ«Ì½ÌÖÈçºÎÔÚʹÓÃÎ÷ÄÏôá·çÒýÇæµÄÖд´½¨Ò»ÖÖÌØÊâµÄ“Ë¢¹Ö»ú”¹ÖÎÕâÖÖ¹ÖÎïÄܹ»Éú³ÉÓ×áÌ£¬²¢ÔÚÉú³ÉÒ»¶¨Åú´ÎµÄ¹ÖÎïºó×Ô¶¯ËÀÍö¡£´ËÍ⣬ÎÒÃÇ»¹½«½éÉÜÈçºÎ±àдһ¸ö¼òµ¥µÄ¼ÆÊ±½Å±¾À´¼ÇÂ¼Íæ¼Ò½øÈëºÍÍ˳öÌØ¶¨µØÍ¼µÄʱ¼ä¡£
#### ¶þ¡¢Ë¢¹Ö»ú¹ÖÎïµÄÉèÖÃ
ΪÁËʵÏÖÔÚ¡¶´«Ææ2¡·ÖеÄÌØÊâ¹ÖÎ﹦ÄÜ£¬ÎÒÃÇÐèÒª¶Ô¹ÖÎïµÄÊôÐÔ½øÐÐһЩ×Ô¶¨ÒåÉèÖá£ÒÔÏÂÊǾßÌåµÄ²½Ö裺
1. **±à¼¹ÖÎïÅäÖÃÎļþ**£ºÕÒµ½²¢´ò¿ªÄãËùʹÓõĹÖÎïÅäÖÃÎļþ£¨Í¨³£Î»ÓÚ`Monster.txt`»òÀàËÆµÄÎļþÖУ©¡£ÎªÄãµÄÄ¿±ê¹ÖÎïÌí¼ÓеÄÊôÐÔ£º
- `SpawnChildOnDeath`: µ±¹ÖÎïËÀÍöʱÊÇ·ñÉú³ÉÓ×áÌ¡£
- `MaxSpawns`: ×î´óÉú³ÉÓ×áÌÊýÁ¿¡£
- `SpawnLimit`: ¹ÖÎïËÀÍöǰ¿ÉÒÔÉú³ÉµÄ×î´óÅú´ÎÊýÁ¿¡£
2. **É趨¹ÖÎïËÀÍöʼþ**£ºÈ·±£µ±¹ÖÎï´ïµ½Æä×î´óÉú³ÉÅú´ÎÏÞÖÆÊ±×Ô¶¯ËÀÍö¡£Õâ¿ÉÒÔͨ¹ýÐ޸ĹÖÎïµÄÐÐΪ½Å±¾»òÔÚÅäÖÃÎļþÖÐÖ±½ÓÉèÖÃÏà¹Ø²ÎÊýʵÏÖ¡£
3. **²âÊÔÓëµ÷Õû**£ºÍê³ÉÉÏÊöÉèÖúó£¬ÔÚÓÎÏ·ÖвâÊԸùÖÎïµÄ±íÏÖ£¬È·±£ÆäÐÐΪ·ûºÏÔ¤ÆÚ¡£¸ù¾Ýʵ¼ÊЧ¹ûµ÷Õû²ÎÊý£¬Ö±µ½ÂúÒâΪֹ¡£
#### Èý¡¢Ê±¼ä¼ÆÊý½Å±¾µÄʵÏÖ
½ÓÏÂÀ´ÊǹØÓÚÈçºÎÀûÓýű¾¼ÆËãÍæ¼Ò½øÈëºÍÀë¿ªÌØ¶¨µØÍ¼µÄʱ¼ä¡£ÕâÀï¼ÙÉèÄãÒѾÊìϤ»ù±¾µÄ½Å±¾ÓïÑÔºÍÎ÷ÄÏôá·çÒýÇæµÄ¹¤×÷ÔÀí¡£
1. **Èë¿Ú´¥·¢Æ÷**£ºÔÚÍæ¼Ò½øÈëÖ¸¶¨µØÍ¼Ê±£¬Æô¶¯Ò»¸ö¼ÆÊ±Æ÷¡£¿ÉÒÔÔÚµØÍ¼Èë¿Ú´¦Ìí¼ÓÒ»¸ö´¥·¢Æ÷£¬Ö´ÐÐÀàËÆÒÔÏÂα´úÂëµÄ²Ù×÷£º
```plaintext
onPlayerEnterMap(playerID, mapID) {
startTime[playerID] = getCurrentTime();
}
```
2. **³ö¿Ú´¥·¢Æ÷**£ºÔÚÍæ¼ÒÀ뿪µØÍ¼Ê±Í£Ö¹¼ÆÊ±Æ÷£¬²¢¼ÆËã×Üʱ¼ä¡£Í¬ÑùµØ£¬ÔÚµØÍ¼³ö¿Ú´¦·ÅÖÃÁíÒ»¸ö´¥·¢Æ÷£º
```plaintext
onPlayerLeaveMap(playerID, mapID) {
endTime[playerID] = getCurrentTime();
totalTime[playerID] = endTime[playerID] - startTime[playerID];
logTime(playerID, totalTime[playerID]);
}
```
3. **ÈÕÖ¾¼Ç¼**£º×îºó£¬²»ÒªÍüÁ˽«ÕâЩʱ¼äÊý¾Ý¼Ç¼ÏÂÀ´£¬ÒÔ±ãºóÐø·ÖÎö¡£Äã¿ÉÒÔÑ¡Ôñ½«ËüÃDZ£´æµ½Êý¾Ý¿â»òÕßдÈëÈÕÖ¾ÎļþÖС£
#### ËÄ¡¢×ܽá
ͨ¹ý¶¨ÖƹÖÎïµÄÐÐΪÒÔ¼°±àд¼òµ¥µÄ¼ÆÊ±½Å±¾£¬ÎÒÃÇ¿ÉÒÔ´ó´ó·á¸»¡¶´«Ææ2¡·µÄÓÎÏ·Íæ·¨¡£ÎÞÂÛÊÇ´´½¨¾ßÓжÀÌØ·±Ö³»úÖÆµÄ¹ÖÎﻹÊǾ«È·¸ú×ÙÍæ¼ÒÔÚ²»Í¬µØÍ¼ÉϵÄÍ£Áôʱ¼ä£¬¶¼ÊÇÌáÉýÍæ¼ÒÌåÑéµÄÓÐЧÊֶΡ£Ï£ÍûÕâÆªÎÄÕÂÄÜΪÄãÌṩÓмÛÖµµÄÖ¸µ¼£¬ÖúÄãÔÚ×Ô¼ºµÄ´«ÆæÊÀ½çÀï´´Ôì³ö¸ü¶à¾«²ÊÄÚÈÝ¡£Èç¹ûÓöµ½ÈκÎÎÊÌâ»òÐèÒª½øÒ»²½µÄ°ïÖú£¬ÇëËæÊ±²éÔÄÏà¹ØÎĵµ»òÉçÇø×ÊÔ´¡£
#### 1. **ºËÐÄ˼·**
ͨ¹ýôá·çÒýÇæµÄ**¹ÖÎï´¥·¢½Å±¾**£¨`MonItems`Ŀ¼£©Óë**»úÆ÷È˽ű¾**£¨`Robot_def`Ŀ¼£©½áºÏ£¬ÊµÏÖÒÔϹ¦ÄÜ£º
- **ĸ¹Ö´æ»îʱÖÜÆÚÐÔÕÙ»½Ó×áÌ**£ºÀûÓùÖÎïËÀÍö´¥·¢»ò¹¥»÷´¥·¢Ê¼þ¡£
- **Åú´Î¼ÆÊýÆ÷ÏÞÖÆ**£ºÍ¨¹ý±äÁ¿¼Ç¼²úÂÑ´ÎÊý£¬´ïµ½10´Îºóĸ¹Ö×Ô»Ù¡£
- **¶¯Ì¬Ë¢¹Ö·¶Î§¿ØÖÆ**£ºÊ¹ÓÃ`MONGENEX`ÃüÁ¼û£©ÔÚĸ¹Ö×ø±ê¸½½üÉú³ÉÓ×áÌ¡£
---
#### 2. **¾ßÌå½Å±¾ÊµÏÖ**
**²½Öè1£º¶¨Òåĸ¹Ö´¥·¢½Å±¾**
ÔÚ`MonItems\ĸ¹ÖÃû³Æ.txt`ÖбàдÒÔÏÂÄÚÈÝ£º
```lua
[@Attack] --ĸ¹Ö±»¹¥»÷ʱ´¥·¢
#IF
RANDOM 50 --50%¸ÅÂÊ´¥·¢²úÂÑ
#ACT
MONGENEX <$MAP> <$X> <$Y> Ó×áÌÃû³Æ 5 10 1 --ÔÚĸ¹ÖÖÜΧ5x10·¶Î§ÄÚÉú³É1Ö»Ó×áÌ
INC GLOBAL ²úÂÑ´ÎÊý 1 --È«¾Ö±äÁ¿¼Ç¼²úÂÑÅú´Î
SENDMSG 6 "ĸ¹ÖÒѲúÂѵÚ<$GLOBAL(²úÂÑ´ÎÊý)>ÅúÓ×áÌ£¡"
BREAK
[@Die] --ĸ¹ÖËÀÍöʱ´¥·¢
#IF
CHECKVAR GLOBAL ²úÂÑ´ÎÊý = 10 --¼ì²âÊÇ·ñÒѲúÂÑ10´Î
#ACT
KILL --Ç¿ÖÆÉ±ËÀĸ¹Ö£¨·ÀֹδÂú10´ÎʱËÀÍö£©
SENDMSG 6 "ĸ¹ÖÒÑÍê³É10´Î²úÂÑ£¬×Ô¶¯ÏûÍö£¡"
#ELSEACT
MISSION <$MAP> <$X> <$Y> --ÖØÖÃĸ¹ÖË¢ÐÂ
```
**²½Öè2£ºÈ«¾Ö¼ÆÊýÆ÷¹ÜÀí**
ÔÚ`Robot_def\AutoRunRobot.txt`ÖÐÌí¼Ó¶¨Ê±¼ì²âÂß¼£¨²Î¿¼£©£º
```lua
#AutoRun NPC SEC 10 @¼ì²âĸ¹Ö״̬
```
ÔÚ`Robot_def\RobotManage.txt`Öа󶨼ì²â½Å±¾£º
```lua
[@¼ì²âĸ¹Ö״̬]
#IF
CHECKVAR GLOBAL ²úÂÑ´ÎÊý >= 10 --´ïµ½10´ÎºóÖØÖÃ
#ACT
CALCVAR GLOBAL ²úÂÑ´ÎÊý = 0
UPDATEVAR GLOBAL ²úÂÑ´ÎÊý
```
---
#### 3. **¹Ø¼ü²ÎÊý˵Ã÷**
- **`MONGENEX`ÃüÁî**£ºÖ§³Ö×ø±êÆ«ÒÆ¡¢ÊýÁ¿¡¢·¶Î§¡£
- **È«¾Ö±äÁ¿`GLOBAL`**£º¿çµØÍ¼³Ö¾Ã»¯¼ÆÊýÆ÷¡£
- **`KILL`Ç¿ÖÆÏú»Ù**£º·Àֹĸ¹ÖδÍê³ÉÈÎÎñʱ±»Íæ¼Ò»÷ɱ¡£
---
### ¶þ¡¢µØÍ¼¼ÆÊ±Æ÷ʵÏÖ·½°¸£¨½ø³ö¼ÆÊ±+¶¯Ì¬Í³¼Æ£©
#### 1. **ºËÐÄ˼·**
ÀûÓÃôá·çÒýÇæµÄ**µØÍ¼Ê¼þ´¥·¢Æ÷**£¨`MapEvent.txt`£©Óë**¸öÈ˼ÆÊ±±äÁ¿**£¨`<$STR(N)>`£©£¬ÊµÏÖÒÔϹ¦ÄÜ£º
- **½øÈëµØÍ¼×Ô¶¯¼Ç¼ʱ¼ä´Á**£ºÍ¨¹ý`@EnterMap`ʼþ´¥·¢¡£
- **Í˳öµØÍ¼¼ÆËãÍ£Áôʱ³¤**£ºÍ¨¹ý`@LeaveMap`ʼþ¼ÆËãʱ¼ä²î¡£
- **¼ÆÊ±½á¹ûÏÔʾÓë´æ´¢**£ºÖ§³Ö´æÈëÍæ¼Ò×Ô¶¨Òå±äÁ¿»òÊý¾Ý¿â¡£
---
#### 2. **¾ßÌå½Å±¾ÊµÏÖ**
**²½Öè1£ºµØÍ¼Ê¼þÅäÖÃ**
ÔÚ`MapEvent.txt`ÖÐΪĿ±êµØÍ¼Ìí¼Óʼþ£º
```lua
[µØÍ¼Ãû³Æ]
@EnterMap=@¿ªÊ¼¼ÆÊ±
@LeaveMap=@½áÊø¼ÆÊ±
```
**²½Öè2£º¼ÆÊ±Âß¼½Å±¾**
ÔÚ`QuestDiary\¼ÆÊ±Æ÷.txt`Öбàд£º
```lua
[@¿ªÊ¼¼ÆÊ±]
#ACT
MOV S$½øÈëʱ¼ä <$DATETIME> --¼Ç¼½øÈëʱ¼ä´Á
SENDMSG 6 "ÄúÒѽøÈëµØÍ¼£¬¼ÆÊ±¿ªÊ¼£¡"
[@½áÊø¼ÆÊ±]
#ACT
MOV S$À뿪ʱ¼ä <$DATETIME>
CALCVAR S$Í£Áôʱ³¤ = <$STR(S$À뿪ʱ¼ä)> - <$STR(S$½øÈëʱ¼ä)> --¼ÆËãʱ¼ä²î£¨Ã룩
SENDMSG 6 "ÄúÔÚµØÍ¼Í£ÁôÁË<$STR(S$Í£Áôʱ³¤)>Ã룡"
```
---
#### 3. **¸ß¼¶À©Õ¹¹¦ÄÜ**
- **ÀۼƼÆÊ±´æµµ**£º½«`<$STR(S$Í£Áôʱ³¤)>`´æÈë`<$USERID>.txt`¸öÈ˵µ°¸¡£
- **ÏÞʱÈÎÎñ³Í·£**£ºÈô³¬Ê±Ôò´¥·¢¿ÛѪ»ò´«ËÍ£º
```lua
#IF
LARGE <$STR(S$Í£Áôʱ³¤)> 600 --³¬¹ý10·ÖÖÓ
#ACT
HUMANHP - 50
SENDMSG 6 "Í£Áô³¬Ê±£¬ÉúÃüÖµ-50£¡"
```
---
### Èý¡¢¼æÈÝÐÔÓëÓÅ»¯½¨Òé
#### 1. **ÒýÇæÊÊÅäÐÔÑéÖ¤**
- **Î÷ÄÏôá·çÒýÇæÖ§³Ö**£ºÉÏÊö½Å±¾»ùÓÚ`MONGENEX`¡¢`CALCVAR`µÈÐÂÃüÁî¡£
- **±äÁ¿³åÍ»¹æ±Ü**£ºÊ¹ÓÃ`GLOBAL`ºÍ`S$`Ç°×ºÇø·ÖÈ«¾ÖÓëÁÙʱ±äÁ¿¡£
#### 2. **ÐÔÄÜÓÅ»¯·½°¸**
- **Ë¢¹ÖƵÂÊ¿ØÖÆ**£ºÍ¨¹ý`AutoRunRobot.txt`ÉèÖÃ10Ãë¼ì²âÖÜÆÚ¡£
- **ÄÚ´æÇåÀí»úÖÆ**£ºÎÞÈ˵ØÍ¼×Ô¶¯Çå³ýÓ×áÌ£º
```lua
#IF
CHECKMAPHUMANCOUNT µØÍ¼Ãû³Æ = 0
#ACT
CLEARMAPMON µØÍ¼Ãû³Æ Ó×áÌÃû³Æ
```
#### 3. **µ÷ÊÔÓëÈÕÖ¾¼à¿Ø**
- **M2ServerÈÕÖ¾**£º¼ì²é`M2Server.exe`±¨´í£¨Èç·¾¶´íÎ󣬲ο¼£©¡£
- **Íæ¼ÒÖ¸Áî²âÊÔ**£ºÌí¼Ó`@Test`ÃüÁîÊÖ¶¯´¥·¢¼ÆÊ±Âß¼¡£
---
### ËÄ¡¢×ܽáÓë×ÊÔ´ÍÆ¼ö
1. **¹¤¾ßÍÆ¼ö**£ºÊ¹ÓÓÉÙÒ¯´«Ææ¹¤¾ßÏ䔿ìËÙÅäÖÃÖÇÄÜË¢¹ÖÂß¼¡£
2. **ѧϰ×ÊÁÏ**£º²Î¿¼¡¶ôá·çÒýÇæ°ïÖúÎĵµ¡·ºÍ¡¶MonGen´úÂëÏê½â¡·¡£
3. **ÉçÇøÖ§³Ö**£º·ÃÎÊGMÏÂÔØÕ¾»ñÈ¡×îнű¾Ä£°å¡£
ͨ¹ýÉÏÊö·½°¸£¬¿ÉÍêÕûʵÏÖ“²úÂÑ×Ô»ÙË¢¹Ö»ú”Óë“¶¯Ì¬µØÍ¼¼ÆÊ±Æ÷”£¬Âú×ã±ä̬´«ÆæÍæ·¨ÐèÇó¡£ÈôÐè½øÒ»²½ÓÅ»¯£¬¿É½áºÏµØÍ¼²ÎÊý£¨`TimeMap`£©ºÍ¹ÖÎﱬÂÊÁª¶¯¡£
#### Ò»¡¢ÒýÑÔ
ÔÚ¡¶´«Ææ2¡·Õâ¿î¾µäµÄ¶àÈËÔÚÏß½ÇÉ«°çÑÝÓÎÏ·£¨MMORPG£©ÖУ¬Í¨¹ý×Ô¶¨Òå·þÎñÆ÷ÉèÖÃÀ´ÔöÇ¿ÓÎÏ·ÌåÑéÊÇÒ»ÖÖ³£¼ûµÄ·½Ê½¡£±¾ÎĽ«Ì½ÌÖÈçºÎÔÚʹÓÃÎ÷ÄÏôá·çÒýÇæµÄÖд´½¨Ò»ÖÖÌØÊâµÄ“Ë¢¹Ö»ú”¹ÖÎÕâÖÖ¹ÖÎïÄܹ»Éú³ÉÓ×áÌ£¬²¢ÔÚÉú³ÉÒ»¶¨Åú´ÎµÄ¹ÖÎïºó×Ô¶¯ËÀÍö¡£´ËÍ⣬ÎÒÃÇ»¹½«½éÉÜÈçºÎ±àдһ¸ö¼òµ¥µÄ¼ÆÊ±½Å±¾À´¼ÇÂ¼Íæ¼Ò½øÈëºÍÍ˳öÌØ¶¨µØÍ¼µÄʱ¼ä¡£
#### ¶þ¡¢Ë¢¹Ö»ú¹ÖÎïµÄÉèÖÃ
ΪÁËʵÏÖÔÚ¡¶´«Ææ2¡·ÖеÄÌØÊâ¹ÖÎ﹦ÄÜ£¬ÎÒÃÇÐèÒª¶Ô¹ÖÎïµÄÊôÐÔ½øÐÐһЩ×Ô¶¨ÒåÉèÖá£ÒÔÏÂÊǾßÌåµÄ²½Ö裺
1. **±à¼¹ÖÎïÅäÖÃÎļþ**£ºÕÒµ½²¢´ò¿ªÄãËùʹÓõĹÖÎïÅäÖÃÎļþ£¨Í¨³£Î»ÓÚ`Monster.txt`»òÀàËÆµÄÎļþÖУ©¡£ÎªÄãµÄÄ¿±ê¹ÖÎïÌí¼ÓеÄÊôÐÔ£º
- `SpawnChildOnDeath`: µ±¹ÖÎïËÀÍöʱÊÇ·ñÉú³ÉÓ×áÌ¡£
- `MaxSpawns`: ×î´óÉú³ÉÓ×áÌÊýÁ¿¡£
- `SpawnLimit`: ¹ÖÎïËÀÍöǰ¿ÉÒÔÉú³ÉµÄ×î´óÅú´ÎÊýÁ¿¡£
2. **É趨¹ÖÎïËÀÍöʼþ**£ºÈ·±£µ±¹ÖÎï´ïµ½Æä×î´óÉú³ÉÅú´ÎÏÞÖÆÊ±×Ô¶¯ËÀÍö¡£Õâ¿ÉÒÔͨ¹ýÐ޸ĹÖÎïµÄÐÐΪ½Å±¾»òÔÚÅäÖÃÎļþÖÐÖ±½ÓÉèÖÃÏà¹Ø²ÎÊýʵÏÖ¡£
3. **²âÊÔÓëµ÷Õû**£ºÍê³ÉÉÏÊöÉèÖúó£¬ÔÚÓÎÏ·ÖвâÊԸùÖÎïµÄ±íÏÖ£¬È·±£ÆäÐÐΪ·ûºÏÔ¤ÆÚ¡£¸ù¾Ýʵ¼ÊЧ¹ûµ÷Õû²ÎÊý£¬Ö±µ½ÂúÒâΪֹ¡£
#### Èý¡¢Ê±¼ä¼ÆÊý½Å±¾µÄʵÏÖ
½ÓÏÂÀ´ÊǹØÓÚÈçºÎÀûÓýű¾¼ÆËãÍæ¼Ò½øÈëºÍÀë¿ªÌØ¶¨µØÍ¼µÄʱ¼ä¡£ÕâÀï¼ÙÉèÄãÒѾÊìϤ»ù±¾µÄ½Å±¾ÓïÑÔºÍÎ÷ÄÏôá·çÒýÇæµÄ¹¤×÷ÔÀí¡£
1. **Èë¿Ú´¥·¢Æ÷**£ºÔÚÍæ¼Ò½øÈëÖ¸¶¨µØÍ¼Ê±£¬Æô¶¯Ò»¸ö¼ÆÊ±Æ÷¡£¿ÉÒÔÔÚµØÍ¼Èë¿Ú´¦Ìí¼ÓÒ»¸ö´¥·¢Æ÷£¬Ö´ÐÐÀàËÆÒÔÏÂα´úÂëµÄ²Ù×÷£º
```plaintext
onPlayerEnterMap(playerID, mapID) {
startTime[playerID] = getCurrentTime();
}
```
2. **³ö¿Ú´¥·¢Æ÷**£ºÔÚÍæ¼ÒÀ뿪µØÍ¼Ê±Í£Ö¹¼ÆÊ±Æ÷£¬²¢¼ÆËã×Üʱ¼ä¡£Í¬ÑùµØ£¬ÔÚµØÍ¼³ö¿Ú´¦·ÅÖÃÁíÒ»¸ö´¥·¢Æ÷£º
```plaintext
onPlayerLeaveMap(playerID, mapID) {
endTime[playerID] = getCurrentTime();
totalTime[playerID] = endTime[playerID] - startTime[playerID];
logTime(playerID, totalTime[playerID]);
}
```
3. **ÈÕÖ¾¼Ç¼**£º×îºó£¬²»ÒªÍüÁ˽«ÕâЩʱ¼äÊý¾Ý¼Ç¼ÏÂÀ´£¬ÒÔ±ãºóÐø·ÖÎö¡£Äã¿ÉÒÔÑ¡Ôñ½«ËüÃDZ£´æµ½Êý¾Ý¿â»òÕßдÈëÈÕÖ¾ÎļþÖС£
#### ËÄ¡¢×ܽá
ͨ¹ý¶¨ÖƹÖÎïµÄÐÐΪÒÔ¼°±àд¼òµ¥µÄ¼ÆÊ±½Å±¾£¬ÎÒÃÇ¿ÉÒÔ´ó´ó·á¸»¡¶´«Ææ2¡·µÄÓÎÏ·Íæ·¨¡£ÎÞÂÛÊÇ´´½¨¾ßÓжÀÌØ·±Ö³»úÖÆµÄ¹ÖÎﻹÊǾ«È·¸ú×ÙÍæ¼ÒÔÚ²»Í¬µØÍ¼ÉϵÄÍ£Áôʱ¼ä£¬¶¼ÊÇÌáÉýÍæ¼ÒÌåÑéµÄÓÐЧÊֶΡ£Ï£ÍûÕâÆªÎÄÕÂÄÜΪÄãÌṩÓмÛÖµµÄÖ¸µ¼£¬ÖúÄãÔÚ×Ô¼ºµÄ´«ÆæÊÀ½çÀï´´Ôì³ö¸ü¶à¾«²ÊÄÚÈÝ¡£Èç¹ûÓöµ½ÈκÎÎÊÌâ»òÐèÒª½øÒ»²½µÄ°ïÖú£¬ÇëËæÊ±²éÔÄÏà¹ØÎĵµ»òÉçÇø×ÊÔ´¡£

