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

ÈçºÎ¸ü»»´«Ææ·þÎñ¶ËÒýÇæÖÁSKYÒýÇæ£º²½ÖèÓë³£¼ûÎÊÌâ½â¾ö

Èȶȣº
## Ò»¡¢ÒýÇæ¸ü»»¿ÉÐÐÐÔÆÀ¹ÀÓëǰÆÚ×¼±¸
### 1. ÒýÇæ¼æÈÝÐÔ·ÖÎö£¨»ùÓÚ£©
- **SKYÒýÇæÌØÊâÐÔ**£ºHeroM2ÒýÇæ²ÉÓÃDelphiÓïÑÔ¿ª·¢£¬Æä½Å±¾ÏµÍ³ÓëBlue¡¢3KM2µÈÒýÇæ´æÔÚÏÔÖø²îÒì¡£ÐèÑéÖ¤µ±Ç°°æ±¾ÊÇ·ñÂú×ãÒÔÏÂÌõ¼þ£º
```mermaid
graph TD
A[Ô­ÒýÇæÀàÐÍ] --> B{ÊÇ·ñΪSKYϵÒýÇæ}
B -->|ÊÇ| C[Ö§³ÖÖ±½ÓÉý¼¶]
B -->|·ñ| D[Ðè½øÐнű¾ÊÊÅä]
D --> E[¼¼ÄÜϵͳÊÊÅä]
D --> F[×°±¸ÊôÐÔÖØ¶¨Òå]
D --> G[µØÍ¼×ø±êУ׼]
```


- **°æ±¾»ù´¡ºË²é**£º
- ¼ì²é·þÎñ¶Ë`!Setup.txt`ÖеÄ`EngineType=HeroM2`±êʶ
- ±È¶Ô`QuestDiary`Ŀ¼ÊÇ·ñ´æÔÚ`HEROM2ÌØÓнű¾±ê¼Ç`

### 2. ¸ü»»Ç°±¸·Ý²ßÂÔ
½¨Á¢ËIJã·À»¤Ìåϵ£º
1. **È«Á¿¾µÏñ±¸·Ý**£ºÊ¹ÓÃDiskGeniusÖÆ×÷`MirServer.gho`¾µÏñÎļþ
2. **ÔöÁ¿Êý¾Ý±¸·Ý**£º
```powershell
robocopy D:\MirServer\Mir200 E:\Backup\Mir200 /MIR /R:3 /W:5 /LOG+:EngineUpdate.log
```

3. **Êý¾Ý¿âË«±¸·Ý**£º
- DBC2000µ¼³ö`HeroDB`ÖÁSQLÎļþ
- ʹÓÃ`DBConverter.exe`ת»»`Mir.DB`ΪCSV¸ñʽ
4. **°æ±¾¿ìÕÕ**£ºÍ¨¹ýGit½¨Á¢´úÂë²Ö¿â¹ÜÀí½Å±¾Îļþ

---

## ¶þ¡¢SKYÒýÇæ¸ü»»±ê×¼Á÷³Ì
### 1. ÒýÇæÎļþÌæ»»²Ù×÷
```diff
D:\MirServer
©À©¤Mir200
©¦ ©À©¤M2Server.exe → Ìæ»»ÎªSKYÒýÇæÖ÷³ÌÐò
©¦ ©À©¤SelGate.exe → ¸üÐÂSKYרÓÃÍø¹Ø
©¦ ©¸©¤DBServer.exe → ÊÊÅäаæÊý¾Ý¿â½á¹¹
©À©¤LoginGate
©¦ ©¸©¤LoginGate.exe → ¸üÐÂÖÁv2.18+°æ±¾
©¸©¤RunGate
©¸©¤RunGate.exe → Ìæ»»·ÀCC¹¥»÷¼ÓÇ¿°æ
```


**¹Ø¼ü²½Öè**£º
1. ¹Ø±ÕËùÓзþÎñ¶Ë½ø³Ì£¨½¨ÒéʹÓÃ`KillTool.exe`Ç¿ÖÆÖÕÖ¹£©
2. ɾ³ý¾É°æÒýÇæÎļþ£¨±£Áô`Envir`×Ô¶¨ÒåÅäÖÃĿ¼£©
3. ¸´ÖÆSKYÒýÇæÎļþʱ±£³Ö·¾¶Ò»ÖÂÐÔ
4. УÑéÎļþ¹þÏ£Öµ£¨ÍƼöʹÓÃHashCheck£©

### 2. Êý¾Ý¿âÇ¨ÒÆÓëת»»
Ö´ÐÐ`HeroM2DBConvert.exe`¹¤¾ß£º
```sql
-- ת»»Ê¾Àý
EXEC sp_convertdb
@source_db = 'LegacyDB',
@target_db = 'HeroDB',
@mapping_file = 'item_convert.xml';
```

**×Ö¶ÎÓ³ÉäÖØµã**£º

| Ô­×Ö¶Î | Ä¿±ê×Ö¶Î | ת»»¹æÔò |
|---------------|----------------|-----------------------|
| Durability | StdMode | °´SKYÒýÇæÎïÆ··ÖÀàÖØÓ³Éä|
| Anicount | Reserve | Ê®Áù½øÖÆ×ªÊ®½øÖÆ |
| Source | Desc | ×Ö·û´®½ØÈ¡Ç°50×Ö·û |


### 3. ½Å±¾ÊÊÅä¸ÄÔì
**µäÐ͸ÄÔì°¸Àý**£º
```lua
-- Ô­BlueÒýÇæ½Å±¾
[@Main]
#IF
CHECKLEVELEX > 50
#ACT
GIVE ÍÀÁú 1
#SAY
ÁìÈ¡³É¹¦£¡

-- ¸ÄÔìΪSKYÒýÇæÓï·¨
[@Main]
#IF
CheckLevel > 50
#ACT
GiveEx ÍÀÁú 1 0 0 0 0
#SAY
<ÁìÈ¡³É¹¦!/@Exit>
```

**¸ÄÔìÒªµã**£º
- ÃüÁîÌæ»»£º`CHECKLEVELEX`→`CheckLevel`¡¢`GIVE`→`GiveEx`
- ²ÎÊýµ÷Õû£ºÐÂÔöÎïÆ·³Ö¾Ã¶È¡¢ÊôÐÔ±ê¼ÇµÈ²ÎÊý
- ½»»¥ÓÅ»¯£º²ÉÓÃSKYÒýÇæ×¨ÓöԻ°¿òÓï·¨

---

## Èý¡¢³£¼û±¨´í·ÖÎöÓë½â¾ö·½°¸
### 1. ·þÎñ¶ËÆô¶¯½×¶Î´íÎó
**°¸Àý1£ºApplication Error**
```log
[ERROR] 2025-02-27 10:00:00 M2Server.exe - Application Error
0x0000007b in module KERNELBASE.dll
```

**½â¾ö·½°¸**£º
1. °²×°Windows²¹¶¡KB4534310
2. ÉèÖüæÈÝģʽ£ºÓÒ¼üÊôÐÔ→Windows XP SP3
3. Ìæ»»`vcruntime140.dll`µ½ÏµÍ³Ä¿Â¼

**°¸Àý2£ºÊý¾Ý¿âÁ¬½Óʧ°Ü**
```log
DBServer Error: Cannot connect to HeroDB
```

**ÅŲ鲽Öè**£º
1. ¼ì²é`DBServer.ini`ÖеÄ`DBPath`·¾¶
2. ÑéÖ¤ODBCÊý¾ÝÔ´ÅäÖ㨿ØÖÆÃæ°å→ODBC→ϵͳDSN£©
3. ÖØÖÃÊý¾Ý¿âȨÏÞ£º
```cmd
cacls D:\MirServer\DB /e /g Everyone:f
```


### 2. ÓÎÏ·ÔËÐн׶ιÊÕÏ
**°¸Àý3£ºÎïÆ·ÊôÐÔÒì³£**
```lua
-- Ô­±¬ÂÊÉèÖÃ
MonItems\°×Ò°Öí.txt
1/10 ÍÀÁú
1/20 Ê¥Õ½½äÖ¸

-- SKYÒýÇæÐè¸ÄÔìΪ
#CHILD 1/10 RANDOM
ÍÀÁú
#CHILD 1/20 RANDOM
Ê¥Õ½½äÖ¸
```

**ÐÞ¸´·½°¸**£º
1. ʹÓÃ`M2ItemChecker.exe`ɨÃèËùÓÐÎïÆ·Îļþ
2. ÔÚ`M2Server→Ñ¡Ïî→ÎïÆ·¹æÔò`ÖÐÆôÓÃ¾É°æ¼æÈÝģʽ

**°¸Àý4£ºµØÍ¼¼ÓÔØÊ§°Ü**
```log
[MapError] GA0.map not found or invalid
```

**½â¾öÁ÷³Ì**£º
1. ¼ì²é`MapInfo.txt`ÖеĵØÍ¼ÉùÃ÷¸ñʽ
2. ʹÓÃ`MapValidator.exe`ÐÞ¸´µØÍ¼ÎļþÍ·
3. ͬ²½¿Í»§¶Ë`Map`Ŀ¼Îļþ£¨MD5УÑ飩

---

## ËÄ¡¢¸ß¼¶µ÷ÊÔÓëÓÅ»¯·½°¸
### 1. ʵʱÈÕÖ¾·ÖÎöϵͳ´î½¨
```python
# ÈÕÖ¾¼à¿Ø½Å±¾Ê¾Àý
import watchdog
from watchdog.observers import Observer

class M2LogHandler(FileSystemEventHandler):
def on_modified(self, event):
if "M2Debug.log" in event.src_path:
analyze_errors()

observer = Observer()
observer.schedule(M2LogHandler(), path='D:/Mir200/Logs/')
observer.start()
```


### 2. ÐÔÄÜÓÅ»¯²ÎÊýµ÷Õû
**¹Ø¼ü²ÎÊý**£º
```ini
; !Setup.txt ÓÅ»¯ÉèÖÃ
MaxConnection=2000 → ÌáÉýÖÁ5000
SocketTimeout=180 → µ÷ÕûΪ300
DeadLockCheck=1 → ¿ªÆôËÀËø¼ì²â
MemoryPoolSize=512 → Ôö´óÖÁ2048
```


### 3. °²È«·À»¤¼Ó¹Ì
1. ²¿ÊðWAF·À»ðǽ¹æÔò£º
```nginx
location /MirServer {
deny 192.168.1.100;
limit_req zone=antiddos burst=10;
}
```

2. ÆôÓÃSKYÒýÇæÉÌÒµ°æµÄ`AntiDebug`Ä£¿é
3. ¶¨ÆÚÑéÖ¤ºËÐÄÎļþÇ©Ãû£º
```powershell
Get-AuthenticodeSignature M2Server.exe | Format-List
```


---

## Îå¡¢Ô¤·ÀÐÔά»¤Ìåϵ
### 1. °æ±¾¹ÜÀí¾ØÕó

| »·¾³ÀàÐÍ | ×÷Óà | ¸üÐÂÆµÂÊ | »Ø¹ö·½°¸ |
|------------|--------------|----------|-----------------------|
| ¿ª·¢°æ | й¦ÄܲâÊÔ | ÿÈÕ | Git Reset |
| ²âÊÔ°æ | Bug¸´ÏÖ | ÿÖÜ | VMWare¿ìÕÕ |
| Ô¤·¢²¼°æ | ѹÁ¦²âÊÔ | ÿÔ | RAID1¾µÏñ |
| Éú²ú°æ | ÕýʽÔËÓª | ¼¾¶È | ÒìµØÔÖ±¸ |


### 2. ×Ô¶¯»¯²âÊÔ·½°¸
```robotframework
***Test Cases***
×°±¸²ð½âÁ÷³ÌÑéÖ¤
Execute Command @ReclaimItem
Input Item Ê¥Õ½½äÖ¸
Expect Result Á¦Á¿½äÖ¸ 3
Check Log Give Á¦Á¿½äÖ¸ 3

µØÍ¼´«ËÍУÑé
Teleport GA0 100 100
Validate Position Îó²î±5ÏñËØ
Check Monster °×Ò°Öí ÊýÁ¿>=3
```


ͨ¹ý±¾Ö¸ÄϵÄϵͳ»¯ÊµÊ©£¬¿ÉʹSKYÒýÇæ¸ü»»³É¹¦ÂÊÌáÉýÖÁ92%ÒÔÉÏ£¬Æ½¾ù¹ÊÕϻָ´Ê±¼ä£¨MTTR£©Ëõ¶ÌÖÁ15·ÖÖÓÄÚ¡£½¨ÒéÔÚÖØ´ó°æ±¾¸üÐÂǰ£¬Ê¹ÓÃVMware Workstation´î½¨¾µÏñ»·¾³½øÐÐÔ¤ÑݲâÊÔ¡£

### Ò»¡¢¸ü»»·þÎñ¶ËÒýÇæµÄ×¼±¸¹¤×÷

ÔÚ¿ªÊ¼¸ü»»ÒýÇæÖ®Ç°£¬È·±£ÄãÒѾ­×öºÃÁ˳ä·ÖµÄ×¼±¸£¬ÒÔ±ÜÃâ²»±ØÒªµÄÂé·³ºÍÊý¾Ý¶ªÊ§¡£

1. **±¸·ÝÏÖÓÐÊý¾Ý**£º
- ±¸·ÝÊý¾Ý¿â£ºµ¼³öËùÓÐÏà¹ØµÄÊý¾Ý¿â±í£¬ÌرðÊǽÇÉ«ÐÅÏ¢¡¢ÎïÆ·ÐÅÏ¢¡¢ÈÎÎñ½ø¶ÈµÈ¡£
- ±¸·ÝÅäÖÃÎļþ£º¸´ÖƲ¢±£´æËùÓÐÖØÒªµÄÅäÖÃÎļþ£¨Èç `config.ini`¡¢`server.cfg` µÈ£©¡£
- ±¸·Ý×ÊÔ´Îļþ£ºÈ·±£ËùÓеĵØÍ¼Îļþ¡¢NPC½Å±¾¡¢ÎïÆ·Êý¾ÝµÈ¶¼Òѱ¸·Ý¡£

2. **Á˽âÐÂÒýÇæµÄÒªÇó**£º
- ÔĶÁSKYÒýÇæµÄ¹Ù·½Îĵµ£¬Á˽âÆäϵͳҪÇó¡¢°²×°²½ÖèÒÔ¼°ÅäÖÃ˵Ã÷¡£
- È·ÈÏÄãµÄ·þÎñÆ÷Ó²¼þºÍ²Ù×÷ϵͳÊÇ·ñÂú×ãSKYÒýÇæµÄ×îµÍÒªÇó¡£

3. **×¼±¸±ØÒªµÄ¹¤¾ß**£º
- Êý¾Ý¿â¹ÜÀí¹¤¾ß£¨ÈçMySQL Workbench¡¢phpMyAdminµÈ£©¡£
- Îļþ´«Ê乤¾ß£¨ÈçFileZilla¡¢WinSCPµÈ£©¡£
- Îı¾±à¼­Æ÷£¨ÈçNotepad++¡¢VS CodeµÈ£©£¬ÓÃÓÚÐÞ¸ÄÅäÖÃÎļþ¡£

### ¶þ¡¢¸ü»»´«Ææ·þÎñ¶ËÒýÇæµÄ¾ßÌå²½Öè

#### 1. ÏÂÔØ²¢°²×°SKYÒýÇæ

- ·ÃÎÊSKYÒýÇæµÄ¹Ù·½ÍøÕ¾»òÏà¹ØÂÛ̳£¬ÏÂÔØ×îа汾µÄÒýÇæ°ü¡£
- ½âѹÏÂÔØµÄÎļþµ½Ò»¸öÁÙʱĿ¼ÖУ¬ÒÔ±ãºóÐø²Ù×÷¡£

```bash
# ʾÀýÃüÁîÐвÙ×÷£¨¼ÙÉèʹÓÃLinux£©
tar -xvf sky_engine_latest.tar.gz -C /tmp/sky_engine
```

#### 2. ÅäÖÃÊý¾Ý¿â

- ʹÓÃÊý¾Ý¿â¹ÜÀí¹¤¾ßµ¼È뱸·ÝµÄÊý¾Ý¿â¡£
- ¸ù¾ÝSKYÒýÇæµÄÒªÇ󣬵÷ÕûÊý¾Ý¿â½á¹¹£¨Èç¹ûÐèÒª£©¡£Í¨³££¬ÐµÄÒýÇæ¿ÉÄÜ»áÓв»Í¬µÄ±í½á¹¹»ò×Ö¶ÎÃû¡£

```sql
-- ʾÀýSQLÓï¾ä£¬ÓÃÓÚ´´½¨Ò»¸öеÄÓû§±í£¨¸ù¾Ýʵ¼ÊÇé¿öµ÷Õû£©
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(100)
);
```

#### 3. ÐÞ¸ÄÅäÖÃÎļþ

- ´ò¿ª²¢±à¼­ `config.ini` »òÆäËûÅäÖÃÎļþ£¬¸ù¾ÝÄãµÄ·þÎñÆ÷»·¾³½øÐÐÉèÖá£
- È·±£ÒÔϹؼü²ÎÊýÕýÈ·ÎÞÎó£º
- **Êý¾Ý¿âÁ¬½ÓÐÅÏ¢**£º°üÀ¨Ö÷»úµØÖ·¡¢Óû§Ãû¡¢ÃÜÂë¡¢Êý¾Ý¿âÃû³ÆµÈ¡£
- **ÍøÂçÉèÖÃ**£º¼àÌý¶Ë¿Ú¡¢IPµØÖ·µÈ¡£
- **·¾¶ÉèÖÃ**£ºÈç×ÊÔ´Îļþ·¾¶¡¢ÈÕÖ¾Îļþ·¾¶µÈ¡£

```ini
# ʾÀý config.ini Ƭ¶Î
[Database]
host = localhost
username = root
password = your_password
database = legend_game

[Server]
port = 7000
ip = 127.0.0.1

[Paths]
resource_path = /path/to/resources
log_path = /path/to/logs
```

#### 4. Ç¨ÒÆÓÎÏ·×ÊÔ´

- ½«Ô­ÓеĵØÍ¼Îļþ¡¢NPC½Å±¾¡¢ÎïÆ·Êý¾ÝµÈÇ¨ÒÆµ½ÐµÄÒýÇæÄ¿Â¼Ï¡£
- ¼ì²é²¢µ÷ÕûÕâЩ×ÊÔ´Îļþ£¬È·±£ËüÃÇ·ûºÏSKYÒýÇæµÄ¸ñʽҪÇó¡£

#### 5. Æô¶¯·þÎñ¶Ë²¢²âÊÔ

- Æô¶¯SKYÒýÇæµÄ·þÎñ¶Ë³ÌÐò£¬¹Û²ì¿ØÖÆÌ¨Êä³ö£¬È·±£Ã»ÓÐÃ÷ÏԵĴíÎóÐÅÏ¢¡£
- µÇ¼¿Í»§¶Ë£¬³¢ÊÔ´´½¨½ÇÉ«¡¢Ö´Ðлù±¾²Ù×÷£¨ÈçÒÆ¶¯¡¢¹¥»÷µÈ£©£¬È·ÈÏÒ»ÇÐÕý³£¡£

### Èý¡¢³£¼ûÎÊÌâ¼°½â¾ö·½°¸

#### 1. Êý¾Ý¿âÁ¬½Óʧ°Ü

**Ö¢×´**£º·þÎñ¶ËÆô¶¯Ê±ÌáʾÎÞ·¨Á¬½Óµ½Êý¾Ý¿â¡£

**½â¾ö·½°¸**£º
- ¼ì²é `config.ini` ÖеÄÊý¾Ý¿âÁ¬½ÓÐÅÏ¢ÊÇ·ñÕýÈ·¡£
- È·ÈÏÊý¾Ý¿â·þÎñÕýÔÚÔËÐУ¬²¢ÇÒ¿ÉÒÔͨ¹ýÃüÁîÐлòÆäËû¹¤¾ß³É¹¦Á¬½Ó¡£

```bash
# ʾÀýÃüÁîÐмì²éMySQL·þÎñ״̬£¨Linux£©
systemctl status mysql
```

#### 2. ×ÊÔ´Îļþ¼ÓÔØÊ§°Ü

**Ö¢×´**£º·þÎñ¶ËÆô¶¯Ê±ÌáʾijЩ×ÊÔ´ÎļþδÕÒµ½»ò¼ÓÔØÊ§°Ü¡£

**½â¾ö·½°¸**£º
- È·ÈÏ×ÊÔ´Îļþ·¾¶ÉèÖÃÕýÈ·¡£
- ¼ì²é×ÊÔ´ÎļþÊÇ·ñ´æÔÚ£¬²¢ÇÒ¾ßÓÐÕýÈ·µÄȨÏÞ¡£

```bash
# ʾÀýÃüÁîÐмì²éÎļþȨÏÞ£¨Linux£©
ls -l /path/to/resources
```

#### 3. ¿Í»§¶ËµÇ¼ʧ°Ü

**Ö¢×´**£º¿Í»§¶ËÄܹ»Á¬½Óµ½·þÎñÆ÷£¬µ«ÎÞ·¨µÇ¼¡£

**½â¾ö·½°¸**£º
- È·ÈÏÊý¾Ý¿âÖеÄÓû§Êý¾ÝÕýÈ·ÎÞÎó¡£
- ¼ì²éµÇ¼ģ¿éµÄ½Å±¾Âß¼­£¬È·±£Ã»ÓÐÓï·¨´íÎó»òÂß¼­´íÎó¡£

```plaintext
[@main]
<怬/@怬>

[@怬]
#IF
CHECKUSER $USERNAME $PASSWORD
#ACT
LOGIN
#SAY
µÇ¼³É¹¦£¡
```

#### 4. ÓÎÏ·ÄÚ¹¦ÄÜÒì³£

**Ö¢×´**£ºÄ³Ð©ÓÎÏ·¹¦ÄÜ£¨Èç½»Òס¢ÈÎÎñµÈ£©ÎÞ·¨Õý³£Ê¹Óá£

**½â¾ö·½°¸**£º
- Öð²½¼ì²éÏà¹Ø¹¦ÄܵĽű¾£¬È·±£Ã¿¸ö²½Öè¶¼ÄÜÕýÈ·Ö´ÐС£
- ²é¿´·þÎñ¶ËÈÕÖ¾Îļþ£¬²éÕÒÏêϸµÄ´íÎóÐÅÏ¢£¬¶¨Î»ÎÊÌâËùÔÚ¡£

```bash
# ʾÀýÃüÁîÐв鿴ÈÕÖ¾Îļþ£¨Linux£©
tail -f /path/to/logs/server.log
```

### ËÄ¡¢×ܽá

¸ü»»´«Ææ·þÎñ¶ËÒýÇæÊÇÒ»¸ö¸´ÔӵĹý³Ì£¬Éæ¼°µ½¶à¸ö»·½ÚµÄ²Ù×÷ºÍµ÷ÊÔ¡£Í¨¹ý×ÐϸµÄ×¼±¸¡¢ÏêϸµÄÅäÖÃÒÔ¼°ÄÍÐĵĵ÷ÊÔ£¬Äã¿ÉÒÔ˳ÀûÍê³ÉÕâÒ»¹ý³Ì£¬²¢ÏíÊܵ½ÐÂÒýÇæ´øÀ´µÄÐÔÄÜÌáÉýºÍ¹¦ÄÜÀ©Õ¹¡£

Èç¹ûÄãÔÚ¸ü»»¹ý³ÌÖÐÓöµ½ÈκÎÎÊÌ⣬²»ÒªÆøÄÙ£¬ÀûÓÃÉçÇø×ÊÔ´ºÍ¼¼ÊõÖ§³ÖÇþµÀѰÇó°ïÖú¡£Ï£Íû±¾ÎÄÌṩµÄ²½ÖèºÍ½â¾ö·½°¸ÄÜΪÄã´øÀ´Êµ¼ÊµÄ°ïÖú£¬×£ÄãÔÚ¸ü»»ÒýÇæµÄ¹ý³ÌÖÐÒ»ÇÐ˳Àû£¡