#### Ò»¡¢ºËÐĸÅÄîÓë²ÎÊýÂß¼
ÔÚBLUEÒýÇæÖУ¬"¹¥É³ÉêÇëʱ¼ä"ÊÇɳ°Í¿Ë¹¥³ÇÕ½µÄºËÐÄ¿ØÖƲÎÊý£¬Æäµ×²ãÂß¼×ñÑÒÔϹ«Ê½£º
```lua
¹¥É³¼¤»îʱ¼ä = ·þÎñÆ÷Æô¶¯Ê±¼ä + ÉêÇ빥ɳÌìÊý × 86400Ãë
```
**²ÎÊý½âÊÍ**£º
- **ĬÈÏ2Ìì/5Ìì/10Ìì**£ºÖ¸·þÎñÆ÷Æô¶¯ºóÐè¾¹ýµÄ¹Ì¶¨ÌìÊý²Å»á¿ª·Å¹¥³ÇÕ½ÉêÇ루1Ìì=86400Ã룩
- **¶¯Ì¬Åж¨»úÖÆ**£ºµ±·þÎñÆ÷ÔËÐÐʱ¼ä ≥ É趨ÌìÊýʱ£¬ÏµÍ³×Ô¶¯¿ª·Åɳ°Í¿ËÕù¶áȨÏÞ£¬´ËʱÐлáÐèÌá½»"׿ÂêÍ·Ïñ"¼¤»î¹¥³ÇÕ½
- **°æ±¾²îÒì˵Ã÷**£º²»Í¬BLUEÒýÇæ°æ±¾¿ÉÄÜ´æÔÚĬÈÏÖµ²îÒ죨²¿·Ö¸´¹Å°æÄ¬ÈÏ5Ì죬ÉÌÒµ°æÄ¬ÈÏ2-3Ì죩
---
#### ¶þ¡¢·Ö²½Ð޸Ľ̳̣¨ÒÔĬÈÏ5Ìì→10ÌìΪÀý£©
##### 1. »ù´¡Â·¾¶Óë½çÃæ¶¨Î»
```mermaid
graph TD
A[Æô¶¯M2Server] --> B[µã»÷¶¥²¿²Ëµ¥À¸'Ñ¡Ïî']
B --> C[Ñ¡Ôñ'²ÎÊýÉèÖÃ']
C --> D[½øÈë'ʱ¼ä¿ØÖÆ'·ÖÒ³]
D --> E[ÕÒµ½'ÉêÇ빥ɳÌìÊý'²ÎÊýÏî]
```
##### 2. ²ÎÊýµ÷Õû²Ù×÷
| ²ÎÊýÏî | Ôʼֵ | Ä¿±êÖµ | ×÷ÓÃÓò | ÉúЧÌõ¼þ |
|------------------|--------|--------|---------------------|------------------------|
| ÉêÇ빥ɳÌìÊý | 5 | 10 | È«¾ÖÉúЧ | Ð޸ĺóÐèÖØÆôM2 |
| ¹¥³Çʱ³¤ | 120 | 180 | µ¥´Î¹¥³Ç³ÖÐøÊ±¼ä | ʵʱÉúЧ£¨·ÖÖÓÖÆ£© |
| ¹¥³Ç¿ªÊ¼Ê±¼ä | 20:00 | 20:30 | ÿÈÕ¹¥³ÇÆô¶¯Ê±¿Ì | Ðèͬ²½Ð޸Ľű¾´¥·¢Ìõ¼þ |
**²Ù×÷²½Öè**£º
1. ÔÚ`ʱ¼ä¿ØÖÆ`½çÃæ¶¨Î»µ½"ÉêÇ빥ɳÌìÊý"ÊäÈë¿ò
2. ½«ÊýÖµ´Ó`5`ÐÞ¸ÄΪ`10`£¨Ö§³Ö1-255Ì췶Χ£©
3. µã»÷"±£´æ"²¢¹Ø±ÕM2Server
4. ÍêÈ«ÖØÆô·þÎñ¶Ë£¨½¨Ò鹨±ÕËùÓÐÍø¹Ø³ÌÐòºóÖØÆô£©
---
#### Èý¡¢¹ØÁªÏµÍ³ÅäÖÃÓëÑéÖ¤
##### 1. ½Å±¾ÅäÌ×Ð޸ģ¨ÒÔQManage.txtΪÀý£©
```lua
[@OnTimer10] -- ¹¥³ÇÕ½´¥·¢¼ì²â
#IF
CheckServerRunDays > 9 -- ÔËÐÐÌìÊý£¾9Ììʱ¼¤»î
#ACT
SetCastleWarStart -- ¿ªÆô¹¥³ÇÕ½
SendMsg 0 "ɳ°Í¿ËÕù¶áÒÑ¿ªÆô£¡Ê£Óàʱ¼ä%d·ÖÖÓ" 180
```
##### 2. Êý¾Ý¿âÑéÖ¤Ïî
```sql
-- ²éѯϵͳ²ÎÊý±í£¨SystemParam£©
SELECT * FROM SystemParam WHERE ParamName LIKE '%War%'
```
ÐèÈ·±£ÒÔÏÂ×Ö¶Îͬ²½£º
- `CastleWarDays`: 10
- `CastleWarDuration`: 180
- `WarStartHour`: 20
##### 3. ¿Í»§¶Ëͬ²½¼ì²â
ÔÚÓÎÏ·ÄÚÊäÈëÃüÁ
```
/²é¿´¹¥É³Ê±¼ä
```
Ó¦·µ»Ø£º
```
Ï´Îɳ°Í¿ËÕù¶á½«ÓÚ10Ììºó¿ª·Å£¬µ±Ç°ÒÑÔËÐУºXÌìXСʱ
```
---
#### ËÄ¡¢¸ß½×µ÷Õû·½°¸
##### 1. ¶¯Ì¬Ê±¼ä¿ØÖÆ£¨Í¨¹ýNPC½Å±¾£©
```lua
[@Main]
#IF
IsAdmin
#ACT
SetCastleWarDays 10 -- Ç¿ÖÆÉèÖù¥É³ÌìÊý
SetGlobalVar CastleWarDays=10 -- È«¾Ö±äÁ¿Í¬²½
SendMsg 0 "[ϵͳ] ¹¥³Çսʱ¼äÒѵ÷ÕûΪ10Ììºó£¡"
```
##### 2. ¶àÌõ¼þ´¥·¢»úÖÆ
```ini
;!Setup.txtÀ©Õ¹ÅäÖÃ
[CastleWar]
Condition1=ServerRunDays>=10 -- »ù´¡ÌìÊý
Condition2=TotalPlayer>=50 -- È«·þÍæ¼Ò≥50ÈË
Condition3=HasGuild>=5 -- ´æÔÚ≥5¸öÐлá
```
##### 3. ʱ¼äϵÊý¹«Ê½£¨ÉÌÒµ·þרÓã©
```python
# ¶¯Ì¬ÌìÊý¼ÆË㹫ʽ£¨¸ù¾ÝÔÚÏßÈËÊýµ÷Õû£©
def calc_war_days(online_players):
base_days = 10 # »ù×¼ÌìÊý
adjust = (online_players - 100) // 20 # ÿ¶à20È˼õ1Ìì
return max(5, base_days - adjust) # ±£µ×5Ìì
```
---
#### Îå¡¢³£¼ûÎÊÌâ½â¾ö·½°¸
| ÎÊÌâÏÖÏó | ¸ùÒò·ÖÎö | ½â¾ö·½°¸ |
|--------------------------|--------------------------|--------------------------------|
| ÐÞ¸ÄÌìÊýºóÈÔÌáʾ"Ê£Óà5Ìì" | δÇåÀíGlobalVar.dat | ɾ³ýDBServerϵÄGlobalVar.datºóÖØÆô |
| ÐлáÎÞ·¨Ìá½»×æÂêÍ·Ïñ | NPC½Å±¾Ìõ¼þ³åÍ» | ¼ì²éQFunctionÖеÄ[@ÌύͷÏñ]´¥·¢Âß¼ |
| ʱ¼äÏÔʾÒì³££¨¸ºÊý£© | ·þÎñÆ÷ʱ¼ä²»Í¬²½ | ͬ²½ÏµÍ³Ê±¼ä²¢ÖØÆôM2 |
| ¹¥É³ÆÚ¼ä·þÎñÆ÷¿¨¶Ù | ¹ÖÎïË¢ÐÂÓë¹¥³ÇʼþÖØµþ | ÔÚMonGen.txtÖÐÉèÖù¥É³ÆÚ¼äֹͣˢ¹Ö |
---
#### Áù¡¢2025ÄêBLUEÒýÇæÐÂÌØÐÔ
1. **AI¶¯Ì¬Æ½ºâ**£º¸ù¾Ý·þÎñÆ÷¸ºÔØ×Ô¶¯µ÷Õû¹¥É³Ê±³¤£¨180·ÖÖÓ±30·ÖÖÓ£©
2. **Çø¿éÁ´´æÖ¤**£º¹¥É³Ê±¼ä²ÎÊýÐ޸ļǼÉÏÁ´£¬¿Éͨ¹ý`/²éѯ°æ±¾`ÑéÖ¤
3. **¶àÊ±ÇøÖ§³Ö**£º¶ÀÁ¢ÉèÖÃÿ¸ö·ÖÇøµÄ¹¥É³µ±µØÊ±¼ä£¨Ð蹺ÂòÉÌÒµÊÚȨ£©
---
#### ½áÓïÓë²Ù×÷½¨Òé
1. **ÐÞ¸Äǰ±Ø×ö**£º
- ±¸·Ý`D:\MirServer\Mir200\Envir\Castle`Ŀ¼
- ¹Ø±ÕËùÓÐÍæ¼ÒµÇ½ͨµÀ£¨·ÀÖ¹Êý¾Ý²»Í¬²½£©
2. **²ÎÊýÁª¶¯½¨Òé**£º
- ¹¥É³ÌìÊýÑÓ³¤ºó£¬Í¬²½µ÷Õû`±¬ÂʵÝÔöϵÊý`£¨½¨ÒéÿÌì+5%£©
- ÅäÌ×ÐÞ¸Ä`Ðлᴴ½¨·ÑÓÃ`£¨´Ó100Íò½ð±ÒÌáÉýÖÁ500Íò£©
3. **¼à¿ØÖ¸±ê**£º
```ini
; ÐÔÄÜÈÕÖ¾¼à¿ØÏî
[WarMonitor]
PlayerConcurrency=500 -- ¹¥É³ÆÚ¼ä×î´ó²¢·¢
NetworkFlow=100Mbps -- ÍøÂçÁ÷Á¿ãÐÖµ
CpuUsage=85% -- ×Ô¶¯½µ¼¶´¥·¢Ïß
ÔÚBLUEÒýÇæÖУ¬"¹¥É³ÉêÇëʱ¼ä"ÊÇɳ°Í¿Ë¹¥³ÇÕ½µÄºËÐÄ¿ØÖƲÎÊý£¬Æäµ×²ãÂß¼×ñÑÒÔϹ«Ê½£º
```lua
¹¥É³¼¤»îʱ¼ä = ·þÎñÆ÷Æô¶¯Ê±¼ä + ÉêÇ빥ɳÌìÊý × 86400Ãë
```
**²ÎÊý½âÊÍ**£º
- **ĬÈÏ2Ìì/5Ìì/10Ìì**£ºÖ¸·þÎñÆ÷Æô¶¯ºóÐè¾¹ýµÄ¹Ì¶¨ÌìÊý²Å»á¿ª·Å¹¥³ÇÕ½ÉêÇ루1Ìì=86400Ã룩
- **¶¯Ì¬Åж¨»úÖÆ**£ºµ±·þÎñÆ÷ÔËÐÐʱ¼ä ≥ É趨ÌìÊýʱ£¬ÏµÍ³×Ô¶¯¿ª·Åɳ°Í¿ËÕù¶áȨÏÞ£¬´ËʱÐлáÐèÌá½»"׿ÂêÍ·Ïñ"¼¤»î¹¥³ÇÕ½
- **°æ±¾²îÒì˵Ã÷**£º²»Í¬BLUEÒýÇæ°æ±¾¿ÉÄÜ´æÔÚĬÈÏÖµ²îÒ죨²¿·Ö¸´¹Å°æÄ¬ÈÏ5Ì죬ÉÌÒµ°æÄ¬ÈÏ2-3Ì죩
---
#### ¶þ¡¢·Ö²½Ð޸Ľ̳̣¨ÒÔĬÈÏ5Ìì→10ÌìΪÀý£©
##### 1. »ù´¡Â·¾¶Óë½çÃæ¶¨Î»
```mermaid
graph TD
A[Æô¶¯M2Server] --> B[µã»÷¶¥²¿²Ëµ¥À¸'Ñ¡Ïî']
B --> C[Ñ¡Ôñ'²ÎÊýÉèÖÃ']
C --> D[½øÈë'ʱ¼ä¿ØÖÆ'·ÖÒ³]
D --> E[ÕÒµ½'ÉêÇ빥ɳÌìÊý'²ÎÊýÏî]
```
##### 2. ²ÎÊýµ÷Õû²Ù×÷
| ²ÎÊýÏî | Ôʼֵ | Ä¿±êÖµ | ×÷ÓÃÓò | ÉúЧÌõ¼þ |
|------------------|--------|--------|---------------------|------------------------|
| ÉêÇ빥ɳÌìÊý | 5 | 10 | È«¾ÖÉúЧ | Ð޸ĺóÐèÖØÆôM2 |
| ¹¥³Çʱ³¤ | 120 | 180 | µ¥´Î¹¥³Ç³ÖÐøÊ±¼ä | ʵʱÉúЧ£¨·ÖÖÓÖÆ£© |
| ¹¥³Ç¿ªÊ¼Ê±¼ä | 20:00 | 20:30 | ÿÈÕ¹¥³ÇÆô¶¯Ê±¿Ì | Ðèͬ²½Ð޸Ľű¾´¥·¢Ìõ¼þ |
**²Ù×÷²½Öè**£º
1. ÔÚ`ʱ¼ä¿ØÖÆ`½çÃæ¶¨Î»µ½"ÉêÇ빥ɳÌìÊý"ÊäÈë¿ò
2. ½«ÊýÖµ´Ó`5`ÐÞ¸ÄΪ`10`£¨Ö§³Ö1-255Ì췶Χ£©
3. µã»÷"±£´æ"²¢¹Ø±ÕM2Server
4. ÍêÈ«ÖØÆô·þÎñ¶Ë£¨½¨Ò鹨±ÕËùÓÐÍø¹Ø³ÌÐòºóÖØÆô£©
---
#### Èý¡¢¹ØÁªÏµÍ³ÅäÖÃÓëÑéÖ¤
##### 1. ½Å±¾ÅäÌ×Ð޸ģ¨ÒÔQManage.txtΪÀý£©
```lua
[@OnTimer10] -- ¹¥³ÇÕ½´¥·¢¼ì²â
#IF
CheckServerRunDays > 9 -- ÔËÐÐÌìÊý£¾9Ììʱ¼¤»î
#ACT
SetCastleWarStart -- ¿ªÆô¹¥³ÇÕ½
SendMsg 0 "ɳ°Í¿ËÕù¶áÒÑ¿ªÆô£¡Ê£Óàʱ¼ä%d·ÖÖÓ" 180
```
##### 2. Êý¾Ý¿âÑéÖ¤Ïî
```sql
-- ²éѯϵͳ²ÎÊý±í£¨SystemParam£©
SELECT * FROM SystemParam WHERE ParamName LIKE '%War%'
```
ÐèÈ·±£ÒÔÏÂ×Ö¶Îͬ²½£º
- `CastleWarDays`: 10
- `CastleWarDuration`: 180
- `WarStartHour`: 20
##### 3. ¿Í»§¶Ëͬ²½¼ì²â
ÔÚÓÎÏ·ÄÚÊäÈëÃüÁ
```
/²é¿´¹¥É³Ê±¼ä
```
Ó¦·µ»Ø£º
```
Ï´Îɳ°Í¿ËÕù¶á½«ÓÚ10Ììºó¿ª·Å£¬µ±Ç°ÒÑÔËÐУºXÌìXСʱ
```
---
#### ËÄ¡¢¸ß½×µ÷Õû·½°¸
##### 1. ¶¯Ì¬Ê±¼ä¿ØÖÆ£¨Í¨¹ýNPC½Å±¾£©
```lua
[@Main]
#IF
IsAdmin
#ACT
SetCastleWarDays 10 -- Ç¿ÖÆÉèÖù¥É³ÌìÊý
SetGlobalVar CastleWarDays=10 -- È«¾Ö±äÁ¿Í¬²½
SendMsg 0 "[ϵͳ] ¹¥³Çսʱ¼äÒѵ÷ÕûΪ10Ììºó£¡"
```
##### 2. ¶àÌõ¼þ´¥·¢»úÖÆ
```ini
;!Setup.txtÀ©Õ¹ÅäÖÃ
[CastleWar]
Condition1=ServerRunDays>=10 -- »ù´¡ÌìÊý
Condition2=TotalPlayer>=50 -- È«·þÍæ¼Ò≥50ÈË
Condition3=HasGuild>=5 -- ´æÔÚ≥5¸öÐлá
```
##### 3. ʱ¼äϵÊý¹«Ê½£¨ÉÌÒµ·þרÓã©
```python
# ¶¯Ì¬ÌìÊý¼ÆË㹫ʽ£¨¸ù¾ÝÔÚÏßÈËÊýµ÷Õû£©
def calc_war_days(online_players):
base_days = 10 # »ù×¼ÌìÊý
adjust = (online_players - 100) // 20 # ÿ¶à20È˼õ1Ìì
return max(5, base_days - adjust) # ±£µ×5Ìì
```
---
#### Îå¡¢³£¼ûÎÊÌâ½â¾ö·½°¸
| ÎÊÌâÏÖÏó | ¸ùÒò·ÖÎö | ½â¾ö·½°¸ |
|--------------------------|--------------------------|--------------------------------|
| ÐÞ¸ÄÌìÊýºóÈÔÌáʾ"Ê£Óà5Ìì" | δÇåÀíGlobalVar.dat | ɾ³ýDBServerϵÄGlobalVar.datºóÖØÆô |
| ÐлáÎÞ·¨Ìá½»×æÂêÍ·Ïñ | NPC½Å±¾Ìõ¼þ³åÍ» | ¼ì²éQFunctionÖеÄ[@ÌύͷÏñ]´¥·¢Âß¼ |
| ʱ¼äÏÔʾÒì³££¨¸ºÊý£© | ·þÎñÆ÷ʱ¼ä²»Í¬²½ | ͬ²½ÏµÍ³Ê±¼ä²¢ÖØÆôM2 |
| ¹¥É³ÆÚ¼ä·þÎñÆ÷¿¨¶Ù | ¹ÖÎïË¢ÐÂÓë¹¥³ÇʼþÖØµþ | ÔÚMonGen.txtÖÐÉèÖù¥É³ÆÚ¼äֹͣˢ¹Ö |
---
#### Áù¡¢2025ÄêBLUEÒýÇæÐÂÌØÐÔ
1. **AI¶¯Ì¬Æ½ºâ**£º¸ù¾Ý·þÎñÆ÷¸ºÔØ×Ô¶¯µ÷Õû¹¥É³Ê±³¤£¨180·ÖÖÓ±30·ÖÖÓ£©
2. **Çø¿éÁ´´æÖ¤**£º¹¥É³Ê±¼ä²ÎÊýÐ޸ļǼÉÏÁ´£¬¿Éͨ¹ý`/²éѯ°æ±¾`ÑéÖ¤
3. **¶àÊ±ÇøÖ§³Ö**£º¶ÀÁ¢ÉèÖÃÿ¸ö·ÖÇøµÄ¹¥É³µ±µØÊ±¼ä£¨Ð蹺ÂòÉÌÒµÊÚȨ£©
---
#### ½áÓïÓë²Ù×÷½¨Òé
1. **ÐÞ¸Äǰ±Ø×ö**£º
- ±¸·Ý`D:\MirServer\Mir200\Envir\Castle`Ŀ¼
- ¹Ø±ÕËùÓÐÍæ¼ÒµÇ½ͨµÀ£¨·ÀÖ¹Êý¾Ý²»Í¬²½£©
2. **²ÎÊýÁª¶¯½¨Òé**£º
- ¹¥É³ÌìÊýÑÓ³¤ºó£¬Í¬²½µ÷Õû`±¬ÂʵÝÔöϵÊý`£¨½¨ÒéÿÌì+5%£©
- ÅäÌ×ÐÞ¸Ä`Ðлᴴ½¨·ÑÓÃ`£¨´Ó100Íò½ð±ÒÌáÉýÖÁ500Íò£©
3. **¼à¿ØÖ¸±ê**£º
```ini
; ÐÔÄÜÈÕÖ¾¼à¿ØÏî
[WarMonitor]
PlayerConcurrency=500 -- ¹¥É³ÆÚ¼ä×î´ó²¢·¢
NetworkFlow=100Mbps -- ÍøÂçÁ÷Á¿ãÐÖµ
CpuUsage=85% -- ×Ô¶¯½µ¼¶´¥·¢Ïß

