1. **ÎÊÌâ·ÖÎö**
- µ±³öÏÖ“StartServerEngineException, Field 'HP' not found”ÕâÑùµÄ±¨´íÐÅϢʱ£¬Í¨³£ÊÇÔÚÓÎÏ··þÎñÆ÷Æô¶¯»òÕßÏà¹ØÓÎÏ·Âß¼Ö´Ðйý³ÌÖУ¬³ÌÐòÎÞ·¨ÕÒµ½ÃûΪ“HP”£¨ÉúÃüÖµ£¬ºÜ¿ÉÄÜÊÇÓÎÏ·½ÇÉ«»òÓÎϷʵÌåµÄÒ»¸öÊôÐÔ£©µÄ×ֶΡ£Õâ¿ÉÄÜÊÇÓÉÓÚÅäÖÃÎļþ´íÎó¡¢´úÂëÖÐÊý¾Ý½á¹¹µÄ¶¨Ò岻ƥÅä»òÕßÊý¾Ý¼ÓÔØ¹ý³Ì³öÏÖÎÊÌâµ¼Öµġ£
2. **¿ÉÄܵĽâ¾ö·½°¸**
- **¼ì²éÊý¾Ý¶¨Òå**
- Ê×ÏÈÒª¼ì²éÓÎÏ·´úÂëÖжÔÓÚ“HP”×ֶε͍Òå¡£ÔÚÓÎÏ·µÄʵÌåÀࣨ±ÈÈç½ÇÉ«Àà¡¢¹ÖÎïÀàµÈ£©ÖУ¬È·ÈÏÊÇ·ñÓГHP”Õâ¸ö³ÉÔ±±äÁ¿µÄ¶¨Òå¡£Èç¹ûÊÇʹÓÃÃæÏò¶ÔÏóÓïÑÔ£¨ÈçJava¡¢C#µÈ£©±àдµÄÓÎÏ··þÎñÆ÷£¬¿ÉÄÜÊÇÀàËÆÏÂÃæÕâÑùµÄ´úÂë³öÏÖÁËÎÊÌ⣺
- ÒÔJavaΪÀý£¬¼ÙÉèÓÐÒ»¸ö½ÇÉ«Àà`Character`£º
```java
public class Character {
private int attack;
// ÕâÀïȱÉÙÁËHPµÄ¶¨Òå
public int getAttack() {
return attack;
}
}
```
- ÕýÈ·µÄÓ¦¸ÃÌí¼Ó“HP”µÄ¶¨Ò壬±ÈÈ磺
```java
public class Character {
private int attack;
private int HP;
public int getAttack() {
return attack;
}
public int getHP() {
return HP;
}
}
```
- **¼ì²éÅäÖÃÎļþ**
- ÓÎÏ·¿ÉÄÜ»á´ÓÅäÖÃÎļþÖжÁȡʵÌåµÄÊôÐÔÐÅÏ¢¡£¼ì²éÅäÖÃÎļþ£¨ÀýÈçXML¡¢JSON»òÕßINI¸ñʽµÄÅäÖÃÎļþ£©ÖÐÊÇ·ñÕýÈ·µØ°üº¬ÁË“HP”Õâ¸öÊôÐԵ͍Òå¡£
- ÒÔJSONÅäÖÃÎļþΪÀý£¬¿ÉÄÜÓÐÒ»¸ö½ÇÉ«ÊôÐÔµÄÅäÖÃÈçÏ£º
```json
{
"attack": 10,
// Èç¹ûÕâÀïȱÉÙHPµÄÅäÖþͿÉÄܵ¼ÖÂÎÊÌâ
"defense": 5
}
```
- Ó¦¸ÃÌí¼Ó“HP”µÄÅäÖ㬱ÈÈ磺
```json
{
"attack": 10,
"HP": 100,
"defense": 5
}
```
- **¼ì²éÊý¾Ý¼ÓÔØÂß¼**
- ²é¿´ÓÎÏ··þÎñÆ÷ÖиºÔð¼ÓÔØ½ÇÉ«»òʵÌåÊý¾ÝµÄ´úÂ벿·Ö¡£¿ÉÄÜÔÚ´ÓÊý¾Ý¿â»òÕßÎļþϵͳ¼ÓÔØÊý¾Ýµ½ÄÚ´æÖеÄʱºò£¬Ã»ÓÐÕýÈ·µØ´¦Àí“HP”Õâ¸ö×ֶΡ£
- ÀýÈ磬ÔÚʹÓÃPythonºÍSQLiteÊý¾Ý¿âµÄ¼òµ¥ÓÎÏ··þÎñÆ÷ʾÀýÖУ¬´ÓÊý¾Ý¿â¼ÓÔØ½ÇÉ«Êý¾ÝµÄº¯Êý¿ÉÄÜÈçÏ£º
```python
import sqlite3
def load_character_data(character_id):
conn = sqlite3.connect('game.db')
cursor = conn.cursor()
cursor.execute("SELECT attack, defense FROM characters WHERE id =?", (character_id,))
data = cursor.fetchone()
# ÕâÀïûÓмÓÔØHP×Ö¶Î
attack, defense = data
conn.close()
return attack, defense
```
- ÕýÈ·µÄÓ¦¸ÃÐ޸IJéѯÓï¾äºÍ·µ»ØÖµ£¬¼ÓÔØ“HP”×ֶΣ¬±ÈÈ磺
```python
import sqlite3
def load_character_data(character_id):
conn = sqlite3.connect('game.db')
cursor = conn.cursor()
cursor.execute("SELECT attack, HP, defense FROM characters WHERE id =?", (character_id,))
data = cursor.fetchone()
attack, HP, defense = data
conn.close()
return attack, HP, defense
```
3. **ÑÓÉìÄÚÈÝ**
- **ÈÕÖ¾¼Ç¼ºÍµ÷ÊÔ¹¤¾ß**
- ÔÚÓÎÏ·¿ª·¢ºÍ·þÎñÆ÷ά»¤¹ý³ÌÖУ¬Á¼ºÃµÄÈÕÖ¾¼Ç¼ÊǷdz£ÖØÒªµÄ¡£¿ÉÒÔÔÚÓÎÏ··þÎñÆ÷´úÂëÖÐÌí¼ÓÏêϸµÄÈÕÖ¾¼Ç¼Óï¾ä£¬ÒÔ±ãÔÚ³öÏÖÎÊÌâʱÄܹ»¸üºÃµØ×·×Ù´íÎó¡£ÀýÈ磬ÔÚJavaÖпÉÒÔʹÓÃ`log4j`µÈÈÕÖ¾¿ò¼Ü£¬ÔÚPythonÖпÉÒÔʹÓÃ`logging`Ä£¿é¡£
- **°æ±¾¼æÈÝÐÔ**
- Èç¹ûÓÎÏ·ÓиüлòÕßʹÓÃÁ˵ÚÈý·½²å¼þ¡¢¿â£¬Ò²¿ÉÄܻᵼÖÂÕâÖÖ´íÎó¡£¼ì²éÓÎÏ··þÎñÆ÷ºÍÏà¹Ø×é¼þµÄ°æ±¾ÊÇ·ñ¼æÈÝ£¬ÌرðÊǵ±¸üÐÂÉæ¼°µ½Êý¾Ý½á¹¹»òÕßÊôÐÔ¶¨ÒåµÄ±ä»¯Ê±¡£ÀýÈ磬һ¸ö²å¼þ¸üкó¿ÉÄܶԽÇÉ«ÊôÐԵļÓÔØ·½Ê½ÓÐÁËеÄÒªÇó£¬Õâ¾ÍÐèÒª¿ª·¢ÕßÈ¥ÊÊÅä¡£
´«ÆæÓÎÏ·ÖÐ M2 ±¨´í“Start ServerEngine Exception, Field 'HP' not found”ÊÇÒ»¸ö½ÏΪ³£¼ûµÄÎÊÌâ¡£ÓÐÍæ¼ÒÔÚ¸üР1.80 ºÏ»÷ LEG ÒýÇæ°æ±¾Ê±£¬Õý³£¸üа汾ÏÈ×ö°²È«¼ì²âÈ»ºó¸üÐÂÒýÇæ£¬¸²¸ÇÅäÌ׵ǽÆ÷ºÍÒýÇæÆô¶¯ÓÎÏ·¿ØÖÆÆ÷£¬µ«Æô¶¯µ½ M2 µÄʱºò¾Í³öÏÖÁËÕâ¸ö±¨´íÌáʾ¡£½â¾öÕâ¸öÎÊÌâµÄ·½·¨Ö®Ò»ÊÇ´ò¿ªÒýÇæ°üÀïÃæµÄÊý¾Ý¿â DB À©Õ¹¹¤¾ß£¬½«¸´ÖƵÄÒýÇæ°üÀïÃæµÄ HeroDB ת»»¹¤¾ß£¨2011 - 11 - 19£©·Åµ½°æ±¾ÀïÃæµÄ MirServer\\mud2\\db Õâ¸ö·¾¶ÏÂË«»÷´ò¿ª½øÐвÙ×÷£¬¿ÉÄÜÕâ¸ö´¦Àí°ì·¨²»ÊǰٷְÙÓÐÓ㬵«ÓÐÍæ¼ÒÓÃÕâ¸ö·½·¨³É¹¦½â¾öÁËÎÊÌâ¡£Èç¹û M2server ÖгöÏÖÕâ¸ö±¨´í£¬Ò²¿ÉÒÔ°Ñ£¨Á¬»÷°æÒýÇæ£©16.12.26 ÖÐµÄ HeroDB ת»»¹¤¾ß£¨2011 - 11 - 19£©¸´ÖƵ½ D:\\mirserver\\Mud2\\DB Öдò¿ª£¬°ÑÈý¸öÊý¾Ý¿â¶¼×ª»»Ò»Ï£¬×ªÍê³ÉºóµÄÐÂÊý¾Ý¿âÃû×Öºó±ß»á¶àÒ»¸ö_New£¬°Ñ¾ÉÊý¾Ý¿âɾ³ý£¬ÐÂÊý¾Ý¿âÃû×Öºó±ßµÄ_New È¥µô¡£´ËÍ⣬´«Ææ·þÎñ¶Ë¿ÉÄÜ»á³öÏÖ¸÷ÖÖ²»Í¬µÄ±¨´íÇé¿ö£¬±ÈÈçÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±ÕµÄ£¬ÐèÒª²é¿´ D:\\Mirserver\\Mud2\\DBsrv200\\!serverinfo.txt ºÍ D:\\Mirserver\\Gate_Server\\RunGate\\Config.ini ÊÇ·ñ¶ÔÓ¦£¬»òÕßÊÇÓÐÈËÓñä̬¸¨Öú¹¤¾ß¡¢¹¥»÷µÈµ¼Ö RunGate ¹Ø±Õ£¬ÖØÐ´ò¿ª¼´¿É£»»¹ÓпÉÄܳöÏÖ Access violation at address 0041B6F3 in module`M2Server.exe`.Read of address 00000008 Õâ¸öÎÊÌâµ¼Ö M2 ¿¨ËÀ»ò×Ô¶¯¹Ø±ÕµÈÇé¿ö¡£´«ÆæÓÎÏ·µÄ±¨´íÎÊÌâÐèÒªÍæ¼Ò×ÐϸÅŲé¸÷ÖÖ¿ÉÄܵÄÔÒò£¬²ÉÈ¡ÏàÓ¦µÄ½â¾ö°ì·¨£¬ÒÔÈ·±£ÓÎÏ·µÄÕý³£ÔËÐС£
### ´«ÆæÓÎÏ· M2 ±¨´íÔÒòÓÐÄÄЩ
´«ÆæÓÎÏ·ÖÐ M2 ±¨´íµÄÔÒò¶àÖÖ¶àÑù¡£¿ÉÄÜÊÇÓÉÓÚ·þÎñÆ÷ά»¤¡¢ÍøÂçÎÊÌâ¡¢Õ˺ÅÃÜÂë´íÎóµÈµÇ¼ÓëÕ˺ÅÎÊÌâÒýÆð¡£ÔÚÓÎÏ·ÄÚ£¬¿¨¶ÙÎÊÌâ¿ÉÄÜÊÇÓÉÍøÂçÑÓ³Ù»òÉ豸ÐÔÄܲ»×ãµ¼Ö£»ÓÎÏ·±ÀÀ£¿ÉÄÜÊÇÒòΪÓÎÏ·°æ±¾¹ý¾É»ò´æÔÚÎļþË𻵣»ÎÞ·¨½øÈ븱±¾¿ÉÄÜÊÇδ´ïµ½¸±±¾½øÈëÌõ¼þ¡£´ËÍ⣬M2 ±¨´í»¹¿ÉÄÜÊÇÒòΪÓÐÈËʹÓñä̬¸¨Öú¹¤¾ß¹¥»÷£¬µ¼ÖÂÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±Õ£»ÄÚ´æ³åͻҲ¿ÉÄÜÒý·¢ M2 ±¨´í£¬±ÈÈç³öÏÖ“Access violation at address”µÄ´íÎó£¬Õâʱ¿ÉÄÜÐèÒª¼ì²é M2 µÄ¾ø¶ÔµØÖ·²¢¸Ä»ØÔÖµ£¬»òÕ߸ü»»ÄÚ´æ¡£»¹ÓпÉÄÜÊǽű¾ÎÊÌâµ¼Ö£¬ÈçÑ»·´ÎÊý²»¹»¡¢Ñ»·½Å±¾ÓÐÎÊÌâµÈ£¬Ïñ½Å±¾ÀïµÄÊýÖµÉèÖò»ºÏÀí£¬»òÕßÒ»¸öÖ´ÐÐÃüÁîϼӶà¸ö“goto @½Å±¾”µÈÇé¿ö¶¼¿ÉÄÜÒý·¢±¨´í¡£ÁíÍ⣬Îļþ·¾¶´íÎó¡¢Êý¾Ý¿âÁ¬½Ó´íÎó¡¢ÍøÂçÑÓ³ÙÎÊÌâµÈÒ²¿ÉÄܵ¼Ö M2 ±¨´í¡£
### ´«ÆæÓÎÏ· M2 ±¨´íÈçºÎ½â¾ö
¶ÔÓÚ²»Í¬µÄ M2 ±¨´íÇé¿öÓв»Í¬µÄ½â¾ö°ì·¨¡£Èç¹ûÊǵǼʧ°Ü£¬Ê×Ïȼì²éÕ˺ÅÃÜÂëÊÇ·ñÊäÈëÕýÈ·£¬Æä´ÎÈ·ÈÏÍøÂçÁ¬½ÓÊÇ·ñÕý³££¬ÈôÎÊÌâÒÀ¾É£¬¿ÉÄÜÊÇ·þÎñÆ÷ά»¤ÖУ¬ÇëÄÍÐĵȴý²¢²é¿´¹Ù·½¹«¸æ¡£Õ˺ű»·â½û£¬Ò»°ãÊÇÓÉÓÚÎ¥·´ÓÎÏ·¹æÔòËùÖ£¬Íæ¼ÒÐè²é¿´·â½û֪ͨ£¬Á˽â·â½ûÔÒò£¬²¢ÔÚÉêËßÇþµÀ½øÐÐÉêËß¡£ÓÎÏ·¿¨¶Ù£¬½¨ÒéÍæ¼Ò¼ì²éÍøÂç»·¾³£¬ÓÅ»¯É豸ÅäÖ㬲¢¹Ø±Õ²»±ØÒªµÄºǫ́ӦÓá£ÓÎÏ·±ÀÀ££¬½¨ÒéÍæ¼Ò¸üÐÂÓÎÏ·ÖÁ×îа汾£¬²¢³¢ÊÔÖØÐ°²×°ÓÎÏ·¡£ÎÞ·¨½øÈ븱±¾£¬Íæ¼ÒÐè¼ì²é×ÔÉíÌõ¼þÊÇ·ñ·ûºÏÒªÇ󣬲¢ÌáÉýÏàÓ¦ÄÜÁ¦¡£Èç¹ûÊÇÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±Õ£¬²é¿´“D:\\Mirserver\\Mud2\\DBsrv200\\!serverinfo.txt”ºÍ“D:\\Mirserver\\Gate_Server\\RunGate\\Config.ini”ÊÇ·ñ¶ÔÓ¦£¬»òÕßÊÇÓÐÈËÓñä̬¸¨Öú¹¤¾ß¹¥»÷µ¼Ö£¬ÖØÐ´ò¿ª¼´¿É¡£¶ÔÓÚ“Access violation at address”µÄ´íÎ󣬲鿴 M2 µÄ¾ø¶ÔµØÖ·£¬½«µØÖ·¸Ä»ØÔÖµ£¬ÈôÖØÆôÒÀ¾ÉÈç´Ë£¬¿ÉÄÜÐèÒª»»ÄÚ´æ¡£Èç¹ûÊǽű¾ËÀÑ»·ÎÊÌ⣬Ð޸ēD:\\MirserverLOL\\Mir200\\!Setup.txt”ÎļþÀïµÄ goto Ñ»·´ÎÊý£¬Èô»¹ÊdzöÏÖÎÊÌ⣬¼ì²é½Å±¾±¾ÉíÊÇ·ñÓÐÎÊÌ⣬½¨ÒéÉÙÓÓgoto @¡¢#call (/·¾¶/)”¡£¶ÔÓÚÎļþ·¾¶´íÎó£¬È·±£ËùÓÐÐèÒªµÄÎļþ¶¼±»ÕýÈ··ÅÖÃÔÚ·þÎñÆ÷ÉÏ£¬²¢ÇÒËùÓеÄÎļþ·¾¶¶¼ÊÇÕýÈ·µÄ£»Êý¾Ý¿âÁ¬½Ó´íÎ󣬼ì²éÊý¾Ý¿âÉèÖã¬È·±£ÕýÈ·ÉèÖÃÁËÊý¾Ý¿âÓû§ÃûºÍÃÜÂ룬²¢½¨Á¢ÕýÈ·µÄÁ¬½Ó£»ÍøÂçÑÓ³ÙÎÊÌ⣬¿ÉÒÔÓÅ»¯ÍøÂçÉèÖá¢Ôö¼Ó´ø¿í£¬»òÕßʹÓüÓËÙ¹¤¾ß¡£Èç¹û M2 ÌáʾÎÞ·¨ÕÒµ½“LIST”Îļþ£¬½øÈë·þÎñ¶ËĿ¼µÄ“mir200”Ŀ¼£¬ÕÒµ½“!setup.txt”Îļþ£¬½«“CastleFile=”ÕâÒ»Ðд󲿷ÖÌæ»»Îª“CastleFile=.\\Castle\\List.txt”¼´¿É¡£Èç¹û·þÎñ¶Ë M2 Ìáʾ¼ÓÔØ NPC ³õʼ»¯Ê§°Ü£¬½«“MerChant.txt”ÀïµÄ NPC ËùÔڵĵØÍ¼Ð¡Ð´×Öĸ¸ÄΪ´óд£¬¼ì²é“MAPINFO”ÊÇ·ñ´æÔڸõØÍ¼£¬¼ì²é NPC ·ÅÖõÄ×ø±êλÖÃÊÇ·ñÔÚµØÍ¼µÄ·¶Î§ÄÚ¡£
### ´«ÆæÓÎÏ·ÆäËû±¨´íÇé¿ö¼°½â¾ö°ì·¨
³ýÁË M2 ±¨´í£¬´«ÆæÓÎÏ·»¹ÓÐÆäËû±¨´íÇé¿ö¼°½â¾ö°ì·¨¡£±ÈÈç“GEE ºÏÇø³öÏÖ´íÎó´ó²¿·ÖÒòÊý¾Ý¿âË𻵵¼ÖµĺÏÇø±¨´í£¬Èç¹ûºÏÇøÌáʾÄÚ´æ²»×㣬¸üР64 λºÏÇø£¬Ê¹Óà 64 λºÏÇø¹¤¾ßÔÚ·þÎñÆ÷ÉϽøÐкϲ¢£¬¶¨ÆÚÇåÀíһЩÀ¬»øÊý¾Ý£¬¿É¼õÉÙºÏÇøÊ±ÄÚ´æÕ¼Óá£Å¼¶ûºÏÇø³öÏÖ±¨´í£¬¿ÉʹÓÃÊý¾Ý¹ÜÀí¹¤¾ß·Ö±ð´ò¿ª 2 ¸öÇø½øÐÐÐÞ¸´´¦Àí£¬Êý¾Ý¹ÜÀí¹¤¾ßÄÜ´ò¿ªÔò±íʾ¿ÉÒÔÐÞ¸´£¬Èç¹ûÁ¬Êý¾Ý¹ÜÀí¹¤¾ß¶¼´ò²»¿ª£¬¿ÉÒÔ³¢ÊÔºÏÇø¹¤¾ßĿ¼ÄÚµÄ Sqilte Êý¾ÝÐÞ¸´¹¤¾ß¡£Èç¹û´ò¿ª BLUE ΢¶Ë‘mirpatchsvr.exe’Ìáʾһ¸öºìÉ«µÄ E ±¨´í£¬ºÜ´ó¿ÉÄÜÊÇÒòΪ΢¶Ë¿Í»§¶ËµÄ·¾¶ÉèÖôíÎóµ¼Öµģ¬‘data_dir” : “d:/mir2/data/”£¬Òª×¢ÒâÕâ¸ö·¾¶Ð±¸Ü¡¾/¡¿¡¾\\¡¿ÊÇÓÐÇø±ðµÄ£¬ÇëʹÓÃÕâ¸ö·¾¶Ð±¸Ü¡¾/¡¿¡£BLUE ÒýÇæ M2 ºÍÍø¹ØÌáʾ‘·Ç·¨µÇ¼£¬È«¾Ö»á»°Ñé֤ʧ°Ü’£¬ÕâÊÇÒòΪ·þÎñÆ÷ûÓÐ×ö°²È«×é»ò²ßÂÔµ¼Ö£¬Èç¹ûÊÇÎïÀí»úÕâ¸ö¿ÉÒÔÎÞÊÓ£¬¶ÔÓÎϷûÓÐÈκÎÓ°Ï죬Èç¹ûÊÇÔÆ·þÎñÆ÷¿ÉÒÔͨ¹ýÉèÖÃÏà¹Ø°²È«ÇøÆÁ±Îµô²»ÊÇ×Ô¼ºµÄ·þÎñÆ÷ IP¡£´«Ææ°æ±¾¿âÖйØÓÚÎäÆ÷Í·¿ø¶ÜÅÆÏÔʾ´íÎó´íÎ»×ø±êµ÷Õû·½·¨£¬×¼±¸¹¤¾ß‘wil ±à¼Æ÷’£¬ÔÚ wil ±à¼Æ÷ÉÏÃæÕÒµ½ÏÈǰµ¼ÈëµÄÎäÆ÷»òÍ·¿ø£¬Ñ¡ÔñͼƬ£¬ÕÒµ½Í¼Æ¬ÐÅÏ¢µÄ X ×ø±ê¡¢Y ×ø±ê½øÐе÷Õû£¬ÆäÖÐ X ´ú±íˮƽλÖá£
### ´«ÆæÓÎÏ·±¨´í¶ÔÓÎÏ·ÔËÐÐÓкÎÓ°Ïì
´«ÆæÓÎÏ·±¨´í»á¶ÔÓÎÏ·ÔËÐвúÉú¶à·½ÃæµÄ²»Á¼Ó°Ïì¡£Ê×ÏÈ£¬µÇ¼ÓëÕ˺ÅÎÊÌâ»áµ¼ÖÂÍæ¼ÒÎÞ·¨Õý³£½øÈëÓÎÏ·£¬Ó°ÏìÍæ¼ÒµÄÓÎÏ·ÌåÑéºÍÓÎÏ·½ø¶È¡£ÓÎÏ·ÄڵĿ¨¶Ù¡¢±ÀÀ£µÈÎÊÌâ»áʹÓÎÏ·¹ý³Ì²»Á÷³©£¬ÉõÖÁ¿ÉÄܵ¼ÖÂÍæ¼ÒÔڹؼüʱ¿ÌµôÏߣ¬Ó°ÏìÕ½¶·½á¹ûºÍÈÎÎñÍê³É¡£ÎÞ·¨½øÈ븱±¾»á×è°Íæ¼Ò»ñÈ¡ÓÎÏ·×ÊÔ´ºÍÌáÉý½ÇÉ«ÄÜÁ¦¡£M2 ±¨´í¿ÉÄÜ»áʹÓÎÏ··þÎñÆ÷¿¨ËÀ»ò×Ô¶¯¹Ø±Õ£¬Íæ¼ÒÎÞ·¨Õý³£ÓÎÏ·¡£ºÏÇø±¨´í¿ÉÄܵ¼ÖÂÍæ¼ÒµÄÊý¾Ý¶ªÊ§»òÎÞ·¨Õý³£½øÐÐÓÎÏ·µÄºóÐø·¢Õ¹¡£Î¢¶Ë±¨´í¿ÉÄÜÊ¹Íæ¼ÒÎÞ·¨Õý³£Æô¶¯ÓÎÏ·¿Í»§¶Ë¡£ÕâЩ±¨´í²»½öÓ°ÏìÍæ¼Ò¸öÈ˵ÄÓÎÏ·ÌåÑ飬»¹¿ÉÄÜÓ°ÏìÓÎÏ·µÄ¿Ú±®ºÍÍæ¼ÒȺÌåµÄÎȶ¨ÐÔ£¬½µµÍÓÎÏ·µÄÎüÒýÁ¦ºÍ¾ºÕùÁ¦¡£
- µ±³öÏÖ“StartServerEngineException, Field 'HP' not found”ÕâÑùµÄ±¨´íÐÅϢʱ£¬Í¨³£ÊÇÔÚÓÎÏ··þÎñÆ÷Æô¶¯»òÕßÏà¹ØÓÎÏ·Âß¼Ö´Ðйý³ÌÖУ¬³ÌÐòÎÞ·¨ÕÒµ½ÃûΪ“HP”£¨ÉúÃüÖµ£¬ºÜ¿ÉÄÜÊÇÓÎÏ·½ÇÉ«»òÓÎϷʵÌåµÄÒ»¸öÊôÐÔ£©µÄ×ֶΡ£Õâ¿ÉÄÜÊÇÓÉÓÚÅäÖÃÎļþ´íÎó¡¢´úÂëÖÐÊý¾Ý½á¹¹µÄ¶¨Ò岻ƥÅä»òÕßÊý¾Ý¼ÓÔØ¹ý³Ì³öÏÖÎÊÌâµ¼Öµġ£
2. **¿ÉÄܵĽâ¾ö·½°¸**
- **¼ì²éÊý¾Ý¶¨Òå**
- Ê×ÏÈÒª¼ì²éÓÎÏ·´úÂëÖжÔÓÚ“HP”×ֶε͍Òå¡£ÔÚÓÎÏ·µÄʵÌåÀࣨ±ÈÈç½ÇÉ«Àà¡¢¹ÖÎïÀàµÈ£©ÖУ¬È·ÈÏÊÇ·ñÓГHP”Õâ¸ö³ÉÔ±±äÁ¿µÄ¶¨Òå¡£Èç¹ûÊÇʹÓÃÃæÏò¶ÔÏóÓïÑÔ£¨ÈçJava¡¢C#µÈ£©±àдµÄÓÎÏ··þÎñÆ÷£¬¿ÉÄÜÊÇÀàËÆÏÂÃæÕâÑùµÄ´úÂë³öÏÖÁËÎÊÌ⣺
- ÒÔJavaΪÀý£¬¼ÙÉèÓÐÒ»¸ö½ÇÉ«Àà`Character`£º
```java
public class Character {
private int attack;
// ÕâÀïȱÉÙÁËHPµÄ¶¨Òå
public int getAttack() {
return attack;
}
}
```
- ÕýÈ·µÄÓ¦¸ÃÌí¼Ó“HP”µÄ¶¨Ò壬±ÈÈ磺
```java
public class Character {
private int attack;
private int HP;
public int getAttack() {
return attack;
}
public int getHP() {
return HP;
}
}
```
- **¼ì²éÅäÖÃÎļþ**
- ÓÎÏ·¿ÉÄÜ»á´ÓÅäÖÃÎļþÖжÁȡʵÌåµÄÊôÐÔÐÅÏ¢¡£¼ì²éÅäÖÃÎļþ£¨ÀýÈçXML¡¢JSON»òÕßINI¸ñʽµÄÅäÖÃÎļþ£©ÖÐÊÇ·ñÕýÈ·µØ°üº¬ÁË“HP”Õâ¸öÊôÐԵ͍Òå¡£
- ÒÔJSONÅäÖÃÎļþΪÀý£¬¿ÉÄÜÓÐÒ»¸ö½ÇÉ«ÊôÐÔµÄÅäÖÃÈçÏ£º
```json
{
"attack": 10,
// Èç¹ûÕâÀïȱÉÙHPµÄÅäÖþͿÉÄܵ¼ÖÂÎÊÌâ
"defense": 5
}
```
- Ó¦¸ÃÌí¼Ó“HP”µÄÅäÖ㬱ÈÈ磺
```json
{
"attack": 10,
"HP": 100,
"defense": 5
}
```
- **¼ì²éÊý¾Ý¼ÓÔØÂß¼**
- ²é¿´ÓÎÏ··þÎñÆ÷ÖиºÔð¼ÓÔØ½ÇÉ«»òʵÌåÊý¾ÝµÄ´úÂ벿·Ö¡£¿ÉÄÜÔÚ´ÓÊý¾Ý¿â»òÕßÎļþϵͳ¼ÓÔØÊý¾Ýµ½ÄÚ´æÖеÄʱºò£¬Ã»ÓÐÕýÈ·µØ´¦Àí“HP”Õâ¸ö×ֶΡ£
- ÀýÈ磬ÔÚʹÓÃPythonºÍSQLiteÊý¾Ý¿âµÄ¼òµ¥ÓÎÏ··þÎñÆ÷ʾÀýÖУ¬´ÓÊý¾Ý¿â¼ÓÔØ½ÇÉ«Êý¾ÝµÄº¯Êý¿ÉÄÜÈçÏ£º
```python
import sqlite3
def load_character_data(character_id):
conn = sqlite3.connect('game.db')
cursor = conn.cursor()
cursor.execute("SELECT attack, defense FROM characters WHERE id =?", (character_id,))
data = cursor.fetchone()
# ÕâÀïûÓмÓÔØHP×Ö¶Î
attack, defense = data
conn.close()
return attack, defense
```
- ÕýÈ·µÄÓ¦¸ÃÐ޸IJéѯÓï¾äºÍ·µ»ØÖµ£¬¼ÓÔØ“HP”×ֶΣ¬±ÈÈ磺
```python
import sqlite3
def load_character_data(character_id):
conn = sqlite3.connect('game.db')
cursor = conn.cursor()
cursor.execute("SELECT attack, HP, defense FROM characters WHERE id =?", (character_id,))
data = cursor.fetchone()
attack, HP, defense = data
conn.close()
return attack, HP, defense
```
3. **ÑÓÉìÄÚÈÝ**
- **ÈÕÖ¾¼Ç¼ºÍµ÷ÊÔ¹¤¾ß**
- ÔÚÓÎÏ·¿ª·¢ºÍ·þÎñÆ÷ά»¤¹ý³ÌÖУ¬Á¼ºÃµÄÈÕÖ¾¼Ç¼ÊǷdz£ÖØÒªµÄ¡£¿ÉÒÔÔÚÓÎÏ··þÎñÆ÷´úÂëÖÐÌí¼ÓÏêϸµÄÈÕÖ¾¼Ç¼Óï¾ä£¬ÒÔ±ãÔÚ³öÏÖÎÊÌâʱÄܹ»¸üºÃµØ×·×Ù´íÎó¡£ÀýÈ磬ÔÚJavaÖпÉÒÔʹÓÃ`log4j`µÈÈÕÖ¾¿ò¼Ü£¬ÔÚPythonÖпÉÒÔʹÓÃ`logging`Ä£¿é¡£
- **°æ±¾¼æÈÝÐÔ**
- Èç¹ûÓÎÏ·ÓиüлòÕßʹÓÃÁ˵ÚÈý·½²å¼þ¡¢¿â£¬Ò²¿ÉÄܻᵼÖÂÕâÖÖ´íÎó¡£¼ì²éÓÎÏ··þÎñÆ÷ºÍÏà¹Ø×é¼þµÄ°æ±¾ÊÇ·ñ¼æÈÝ£¬ÌرðÊǵ±¸üÐÂÉæ¼°µ½Êý¾Ý½á¹¹»òÕßÊôÐÔ¶¨ÒåµÄ±ä»¯Ê±¡£ÀýÈ磬һ¸ö²å¼þ¸üкó¿ÉÄܶԽÇÉ«ÊôÐԵļÓÔØ·½Ê½ÓÐÁËеÄÒªÇó£¬Õâ¾ÍÐèÒª¿ª·¢ÕßÈ¥ÊÊÅä¡£
´«ÆæÓÎÏ·ÖÐ M2 ±¨´í“Start ServerEngine Exception, Field 'HP' not found”ÊÇÒ»¸ö½ÏΪ³£¼ûµÄÎÊÌâ¡£ÓÐÍæ¼ÒÔÚ¸üР1.80 ºÏ»÷ LEG ÒýÇæ°æ±¾Ê±£¬Õý³£¸üа汾ÏÈ×ö°²È«¼ì²âÈ»ºó¸üÐÂÒýÇæ£¬¸²¸ÇÅäÌ׵ǽÆ÷ºÍÒýÇæÆô¶¯ÓÎÏ·¿ØÖÆÆ÷£¬µ«Æô¶¯µ½ M2 µÄʱºò¾Í³öÏÖÁËÕâ¸ö±¨´íÌáʾ¡£½â¾öÕâ¸öÎÊÌâµÄ·½·¨Ö®Ò»ÊÇ´ò¿ªÒýÇæ°üÀïÃæµÄÊý¾Ý¿â DB À©Õ¹¹¤¾ß£¬½«¸´ÖƵÄÒýÇæ°üÀïÃæµÄ HeroDB ת»»¹¤¾ß£¨2011 - 11 - 19£©·Åµ½°æ±¾ÀïÃæµÄ MirServer\\mud2\\db Õâ¸ö·¾¶ÏÂË«»÷´ò¿ª½øÐвÙ×÷£¬¿ÉÄÜÕâ¸ö´¦Àí°ì·¨²»ÊǰٷְÙÓÐÓ㬵«ÓÐÍæ¼ÒÓÃÕâ¸ö·½·¨³É¹¦½â¾öÁËÎÊÌâ¡£Èç¹û M2server ÖгöÏÖÕâ¸ö±¨´í£¬Ò²¿ÉÒÔ°Ñ£¨Á¬»÷°æÒýÇæ£©16.12.26 ÖÐµÄ HeroDB ת»»¹¤¾ß£¨2011 - 11 - 19£©¸´ÖƵ½ D:\\mirserver\\Mud2\\DB Öдò¿ª£¬°ÑÈý¸öÊý¾Ý¿â¶¼×ª»»Ò»Ï£¬×ªÍê³ÉºóµÄÐÂÊý¾Ý¿âÃû×Öºó±ß»á¶àÒ»¸ö_New£¬°Ñ¾ÉÊý¾Ý¿âɾ³ý£¬ÐÂÊý¾Ý¿âÃû×Öºó±ßµÄ_New È¥µô¡£´ËÍ⣬´«Ææ·þÎñ¶Ë¿ÉÄÜ»á³öÏÖ¸÷ÖÖ²»Í¬µÄ±¨´íÇé¿ö£¬±ÈÈçÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±ÕµÄ£¬ÐèÒª²é¿´ D:\\Mirserver\\Mud2\\DBsrv200\\!serverinfo.txt ºÍ D:\\Mirserver\\Gate_Server\\RunGate\\Config.ini ÊÇ·ñ¶ÔÓ¦£¬»òÕßÊÇÓÐÈËÓñä̬¸¨Öú¹¤¾ß¡¢¹¥»÷µÈµ¼Ö RunGate ¹Ø±Õ£¬ÖØÐ´ò¿ª¼´¿É£»»¹ÓпÉÄܳöÏÖ Access violation at address 0041B6F3 in module`M2Server.exe`.Read of address 00000008 Õâ¸öÎÊÌâµ¼Ö M2 ¿¨ËÀ»ò×Ô¶¯¹Ø±ÕµÈÇé¿ö¡£´«ÆæÓÎÏ·µÄ±¨´íÎÊÌâÐèÒªÍæ¼Ò×ÐϸÅŲé¸÷ÖÖ¿ÉÄܵÄÔÒò£¬²ÉÈ¡ÏàÓ¦µÄ½â¾ö°ì·¨£¬ÒÔÈ·±£ÓÎÏ·µÄÕý³£ÔËÐС£
### ´«ÆæÓÎÏ· M2 ±¨´íÔÒòÓÐÄÄЩ
´«ÆæÓÎÏ·ÖÐ M2 ±¨´íµÄÔÒò¶àÖÖ¶àÑù¡£¿ÉÄÜÊÇÓÉÓÚ·þÎñÆ÷ά»¤¡¢ÍøÂçÎÊÌâ¡¢Õ˺ÅÃÜÂë´íÎóµÈµÇ¼ÓëÕ˺ÅÎÊÌâÒýÆð¡£ÔÚÓÎÏ·ÄÚ£¬¿¨¶ÙÎÊÌâ¿ÉÄÜÊÇÓÉÍøÂçÑÓ³Ù»òÉ豸ÐÔÄܲ»×ãµ¼Ö£»ÓÎÏ·±ÀÀ£¿ÉÄÜÊÇÒòΪÓÎÏ·°æ±¾¹ý¾É»ò´æÔÚÎļþË𻵣»ÎÞ·¨½øÈ븱±¾¿ÉÄÜÊÇδ´ïµ½¸±±¾½øÈëÌõ¼þ¡£´ËÍ⣬M2 ±¨´í»¹¿ÉÄÜÊÇÒòΪÓÐÈËʹÓñä̬¸¨Öú¹¤¾ß¹¥»÷£¬µ¼ÖÂÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±Õ£»ÄÚ´æ³åͻҲ¿ÉÄÜÒý·¢ M2 ±¨´í£¬±ÈÈç³öÏÖ“Access violation at address”µÄ´íÎó£¬Õâʱ¿ÉÄÜÐèÒª¼ì²é M2 µÄ¾ø¶ÔµØÖ·²¢¸Ä»ØÔÖµ£¬»òÕ߸ü»»ÄÚ´æ¡£»¹ÓпÉÄÜÊǽű¾ÎÊÌâµ¼Ö£¬ÈçÑ»·´ÎÊý²»¹»¡¢Ñ»·½Å±¾ÓÐÎÊÌâµÈ£¬Ïñ½Å±¾ÀïµÄÊýÖµÉèÖò»ºÏÀí£¬»òÕßÒ»¸öÖ´ÐÐÃüÁîϼӶà¸ö“goto @½Å±¾”µÈÇé¿ö¶¼¿ÉÄÜÒý·¢±¨´í¡£ÁíÍ⣬Îļþ·¾¶´íÎó¡¢Êý¾Ý¿âÁ¬½Ó´íÎó¡¢ÍøÂçÑÓ³ÙÎÊÌâµÈÒ²¿ÉÄܵ¼Ö M2 ±¨´í¡£
### ´«ÆæÓÎÏ· M2 ±¨´íÈçºÎ½â¾ö
¶ÔÓÚ²»Í¬µÄ M2 ±¨´íÇé¿öÓв»Í¬µÄ½â¾ö°ì·¨¡£Èç¹ûÊǵǼʧ°Ü£¬Ê×Ïȼì²éÕ˺ÅÃÜÂëÊÇ·ñÊäÈëÕýÈ·£¬Æä´ÎÈ·ÈÏÍøÂçÁ¬½ÓÊÇ·ñÕý³££¬ÈôÎÊÌâÒÀ¾É£¬¿ÉÄÜÊÇ·þÎñÆ÷ά»¤ÖУ¬ÇëÄÍÐĵȴý²¢²é¿´¹Ù·½¹«¸æ¡£Õ˺ű»·â½û£¬Ò»°ãÊÇÓÉÓÚÎ¥·´ÓÎÏ·¹æÔòËùÖ£¬Íæ¼ÒÐè²é¿´·â½û֪ͨ£¬Á˽â·â½ûÔÒò£¬²¢ÔÚÉêËßÇþµÀ½øÐÐÉêËß¡£ÓÎÏ·¿¨¶Ù£¬½¨ÒéÍæ¼Ò¼ì²éÍøÂç»·¾³£¬ÓÅ»¯É豸ÅäÖ㬲¢¹Ø±Õ²»±ØÒªµÄºǫ́ӦÓá£ÓÎÏ·±ÀÀ££¬½¨ÒéÍæ¼Ò¸üÐÂÓÎÏ·ÖÁ×îа汾£¬²¢³¢ÊÔÖØÐ°²×°ÓÎÏ·¡£ÎÞ·¨½øÈ븱±¾£¬Íæ¼ÒÐè¼ì²é×ÔÉíÌõ¼þÊÇ·ñ·ûºÏÒªÇ󣬲¢ÌáÉýÏàÓ¦ÄÜÁ¦¡£Èç¹ûÊÇÍø¹ØÒ»»á´ò¿ªÒ»»á¹Ø±Õ£¬²é¿´“D:\\Mirserver\\Mud2\\DBsrv200\\!serverinfo.txt”ºÍ“D:\\Mirserver\\Gate_Server\\RunGate\\Config.ini”ÊÇ·ñ¶ÔÓ¦£¬»òÕßÊÇÓÐÈËÓñä̬¸¨Öú¹¤¾ß¹¥»÷µ¼Ö£¬ÖØÐ´ò¿ª¼´¿É¡£¶ÔÓÚ“Access violation at address”µÄ´íÎ󣬲鿴 M2 µÄ¾ø¶ÔµØÖ·£¬½«µØÖ·¸Ä»ØÔÖµ£¬ÈôÖØÆôÒÀ¾ÉÈç´Ë£¬¿ÉÄÜÐèÒª»»ÄÚ´æ¡£Èç¹ûÊǽű¾ËÀÑ»·ÎÊÌ⣬Ð޸ēD:\\MirserverLOL\\Mir200\\!Setup.txt”ÎļþÀïµÄ goto Ñ»·´ÎÊý£¬Èô»¹ÊdzöÏÖÎÊÌ⣬¼ì²é½Å±¾±¾ÉíÊÇ·ñÓÐÎÊÌ⣬½¨ÒéÉÙÓÓgoto @¡¢#call (/·¾¶/)”¡£¶ÔÓÚÎļþ·¾¶´íÎó£¬È·±£ËùÓÐÐèÒªµÄÎļþ¶¼±»ÕýÈ··ÅÖÃÔÚ·þÎñÆ÷ÉÏ£¬²¢ÇÒËùÓеÄÎļþ·¾¶¶¼ÊÇÕýÈ·µÄ£»Êý¾Ý¿âÁ¬½Ó´íÎ󣬼ì²éÊý¾Ý¿âÉèÖã¬È·±£ÕýÈ·ÉèÖÃÁËÊý¾Ý¿âÓû§ÃûºÍÃÜÂ룬²¢½¨Á¢ÕýÈ·µÄÁ¬½Ó£»ÍøÂçÑÓ³ÙÎÊÌ⣬¿ÉÒÔÓÅ»¯ÍøÂçÉèÖá¢Ôö¼Ó´ø¿í£¬»òÕßʹÓüÓËÙ¹¤¾ß¡£Èç¹û M2 ÌáʾÎÞ·¨ÕÒµ½“LIST”Îļþ£¬½øÈë·þÎñ¶ËĿ¼µÄ“mir200”Ŀ¼£¬ÕÒµ½“!setup.txt”Îļþ£¬½«“CastleFile=”ÕâÒ»Ðд󲿷ÖÌæ»»Îª“CastleFile=.\\Castle\\List.txt”¼´¿É¡£Èç¹û·þÎñ¶Ë M2 Ìáʾ¼ÓÔØ NPC ³õʼ»¯Ê§°Ü£¬½«“MerChant.txt”ÀïµÄ NPC ËùÔڵĵØÍ¼Ð¡Ð´×Öĸ¸ÄΪ´óд£¬¼ì²é“MAPINFO”ÊÇ·ñ´æÔڸõØÍ¼£¬¼ì²é NPC ·ÅÖõÄ×ø±êλÖÃÊÇ·ñÔÚµØÍ¼µÄ·¶Î§ÄÚ¡£
### ´«ÆæÓÎÏ·ÆäËû±¨´íÇé¿ö¼°½â¾ö°ì·¨
³ýÁË M2 ±¨´í£¬´«ÆæÓÎÏ·»¹ÓÐÆäËû±¨´íÇé¿ö¼°½â¾ö°ì·¨¡£±ÈÈç“GEE ºÏÇø³öÏÖ´íÎó´ó²¿·ÖÒòÊý¾Ý¿âË𻵵¼ÖµĺÏÇø±¨´í£¬Èç¹ûºÏÇøÌáʾÄÚ´æ²»×㣬¸üР64 λºÏÇø£¬Ê¹Óà 64 λºÏÇø¹¤¾ßÔÚ·þÎñÆ÷ÉϽøÐкϲ¢£¬¶¨ÆÚÇåÀíһЩÀ¬»øÊý¾Ý£¬¿É¼õÉÙºÏÇøÊ±ÄÚ´æÕ¼Óá£Å¼¶ûºÏÇø³öÏÖ±¨´í£¬¿ÉʹÓÃÊý¾Ý¹ÜÀí¹¤¾ß·Ö±ð´ò¿ª 2 ¸öÇø½øÐÐÐÞ¸´´¦Àí£¬Êý¾Ý¹ÜÀí¹¤¾ßÄÜ´ò¿ªÔò±íʾ¿ÉÒÔÐÞ¸´£¬Èç¹ûÁ¬Êý¾Ý¹ÜÀí¹¤¾ß¶¼´ò²»¿ª£¬¿ÉÒÔ³¢ÊÔºÏÇø¹¤¾ßĿ¼ÄÚµÄ Sqilte Êý¾ÝÐÞ¸´¹¤¾ß¡£Èç¹û´ò¿ª BLUE ΢¶Ë‘mirpatchsvr.exe’Ìáʾһ¸öºìÉ«µÄ E ±¨´í£¬ºÜ´ó¿ÉÄÜÊÇÒòΪ΢¶Ë¿Í»§¶ËµÄ·¾¶ÉèÖôíÎóµ¼Öµģ¬‘data_dir” : “d:/mir2/data/”£¬Òª×¢ÒâÕâ¸ö·¾¶Ð±¸Ü¡¾/¡¿¡¾\\¡¿ÊÇÓÐÇø±ðµÄ£¬ÇëʹÓÃÕâ¸ö·¾¶Ð±¸Ü¡¾/¡¿¡£BLUE ÒýÇæ M2 ºÍÍø¹ØÌáʾ‘·Ç·¨µÇ¼£¬È«¾Ö»á»°Ñé֤ʧ°Ü’£¬ÕâÊÇÒòΪ·þÎñÆ÷ûÓÐ×ö°²È«×é»ò²ßÂÔµ¼Ö£¬Èç¹ûÊÇÎïÀí»úÕâ¸ö¿ÉÒÔÎÞÊÓ£¬¶ÔÓÎϷûÓÐÈκÎÓ°Ï죬Èç¹ûÊÇÔÆ·þÎñÆ÷¿ÉÒÔͨ¹ýÉèÖÃÏà¹Ø°²È«ÇøÆÁ±Îµô²»ÊÇ×Ô¼ºµÄ·þÎñÆ÷ IP¡£´«Ææ°æ±¾¿âÖйØÓÚÎäÆ÷Í·¿ø¶ÜÅÆÏÔʾ´íÎó´íÎ»×ø±êµ÷Õû·½·¨£¬×¼±¸¹¤¾ß‘wil ±à¼Æ÷’£¬ÔÚ wil ±à¼Æ÷ÉÏÃæÕÒµ½ÏÈǰµ¼ÈëµÄÎäÆ÷»òÍ·¿ø£¬Ñ¡ÔñͼƬ£¬ÕÒµ½Í¼Æ¬ÐÅÏ¢µÄ X ×ø±ê¡¢Y ×ø±ê½øÐе÷Õû£¬ÆäÖÐ X ´ú±íˮƽλÖá£
### ´«ÆæÓÎÏ·±¨´í¶ÔÓÎÏ·ÔËÐÐÓкÎÓ°Ïì
´«ÆæÓÎÏ·±¨´í»á¶ÔÓÎÏ·ÔËÐвúÉú¶à·½ÃæµÄ²»Á¼Ó°Ïì¡£Ê×ÏÈ£¬µÇ¼ÓëÕ˺ÅÎÊÌâ»áµ¼ÖÂÍæ¼ÒÎÞ·¨Õý³£½øÈëÓÎÏ·£¬Ó°ÏìÍæ¼ÒµÄÓÎÏ·ÌåÑéºÍÓÎÏ·½ø¶È¡£ÓÎÏ·ÄڵĿ¨¶Ù¡¢±ÀÀ£µÈÎÊÌâ»áʹÓÎÏ·¹ý³Ì²»Á÷³©£¬ÉõÖÁ¿ÉÄܵ¼ÖÂÍæ¼ÒÔڹؼüʱ¿ÌµôÏߣ¬Ó°ÏìÕ½¶·½á¹ûºÍÈÎÎñÍê³É¡£ÎÞ·¨½øÈ븱±¾»á×è°Íæ¼Ò»ñÈ¡ÓÎÏ·×ÊÔ´ºÍÌáÉý½ÇÉ«ÄÜÁ¦¡£M2 ±¨´í¿ÉÄÜ»áʹÓÎÏ··þÎñÆ÷¿¨ËÀ»ò×Ô¶¯¹Ø±Õ£¬Íæ¼ÒÎÞ·¨Õý³£ÓÎÏ·¡£ºÏÇø±¨´í¿ÉÄܵ¼ÖÂÍæ¼ÒµÄÊý¾Ý¶ªÊ§»òÎÞ·¨Õý³£½øÐÐÓÎÏ·µÄºóÐø·¢Õ¹¡£Î¢¶Ë±¨´í¿ÉÄÜÊ¹Íæ¼ÒÎÞ·¨Õý³£Æô¶¯ÓÎÏ·¿Í»§¶Ë¡£ÕâЩ±¨´í²»½öÓ°ÏìÍæ¼Ò¸öÈ˵ÄÓÎÏ·ÌåÑ飬»¹¿ÉÄÜÓ°ÏìÓÎÏ·µÄ¿Ú±®ºÍÍæ¼ÒȺÌåµÄÎȶ¨ÐÔ£¬½µµÍÓÎÏ·µÄÎüÒýÁ¦ºÍ¾ºÕùÁ¦¡£

