HeroM2是什麼?
HeroM2全名是HeroM2英雄引擎,是一款非常出色的2D遊戲引擎,是依賴於盛大熱血傳奇客戶端的傳奇私服類引擎 。這款引擎由於功能強大,支持國戰系統,支持真彩素材,支持英雄合擊、連擊等,而且完全免費,所以在傳奇私服引擎中使用的最多。
Hero(美音:['h?ro]) 英文指英雄的意思。M2是mir2的縮寫,在這裡是傳奇服務端的意思。
HeroM2引擎原名SKY引擎,後來被HeroM2收購,現在又改名為MainM2!在hero和main之間,有很多冒充hero的假冒引擎出現,但是因為沒有源碼,也逐漸倒閉。
經證實,main是原班SKY引擎的團隊,和hero是什麼關係,暫時還不清楚,但是的確是hero最後一版源碼更新過來的。連數據和通信都一模一樣。
HeroM2的歷史與演變
2006年3月12日SKY引擎開發團隊正式成立!
2006年12月10日正式發布第一款SKY引擎,使用SKYM2·com為引擎官方網站
2006年12月12日SKY引擎開始收費,以註冊碼的方式限制M2程式。
2007年12月29日SKY引擎正式倒閉。
2007年01月03日SKY引擎被HeroM2引擎收購。
2008年01月06日HeroM2正式發布HeroM2引擎,並把SKY改名為Hero。
2008年06月03日HeroM2決定引擎完全免費。。
2010年12月02日HeroM2倒閉。
2014年05月19日hero引擎在次更新取名MainM2
HeroM2遊戲引擎程式介紹
HeroM2遊戲引擎是一款2DMMORGP角色扮演遊戲開發的引擎,可以用它開發熱血傳奇私服遊戲,也可以開發2DRGP網路遊戲。
引擎程式包括服務端程式GameCenter.exe (服務端配置啟動器)
M2Server.exe (主控制程式,簡稱M2)
DBServer.exe (資料庫控制程式)
LogDataServer.exe (日誌伺服器)
LoginGate.exe (遊戲登入網關)
RunGate.exe (遊戲網關)
SelGate.exe (遊戲角色網關)
合區工具
資料庫 HeroM2遊戲引擎資料庫是採用DBC 2000 (DB Commander 2000)資料庫。支持Mysql資料庫和SQL sever 資料庫。(需要轉換和修改資料庫控制程式配置)
資料庫大家通常用DB Commander 2000漢化版和萬游網絡傳奇設定器3.2破解版等工具管理。也可以用GM2官方發布的管理工具和SQL Explorer資料庫軟體管理。
客戶端 HeroM2遊戲引擎主要是以盛大熱血傳奇客戶端為主,也可以自定義配置客戶端檔案。
主素材檔案在Data資料夾中,以.wil格式壓縮檔案和.wis格式壓縮檔案為主。可以使用官方提供的真彩wil編輯器編輯素材檔案,素材可以支持256色、8位像素、16位像素、24位像素、32位像素高清BMP圖片等。創建素材檔案後工具會自動生成.wix配置檔案。
地圖檔案放在map檔案夾中,格式為.map,可以使用官方的Map地圖編輯器(真彩32位)軟體開發製作2DRGP地圖,同樣支持256色、8位像素、16位像素、24位像素、32位像素高清地圖。.map格式地圖檔案素材是由ObjectsX.wil檔案支持,如果沒有ObjectsX.wil將無法查看地圖。
聲音素材在Wav資料夾中,格式為.Wav檔案。
另外GM2引擎還支持擴展素材,如Graphics資料夾中的角色人物外觀和武器外觀。Human是角色人物外觀Weapon是武器外觀,也是.wil格式檔案。
SKY_Config檔案是玩家數據配置檔案,主要是.sky檔案和.txt檔案組成。
GameLogin.exe 程式是GM2引擎專用遊戲登入器,要和引擎配套使用。登入器是要用SKY引擎提供的配置器配置使用。
(注意:以上工具在遊戲引擎官方網站上均可以下載。)
HeroM2程式語言
HeroM2引擎腳本,和lua有相似之處,語法上是借鑑與C語言和彙編語音的一種非常簡單易懂的腳本語言。HeroM2腳本語言數據類型簡單、代碼穩定、可讀性好、編譯速度快,但是HeroM2腳本語言語法結構非常嚴謹 ,區分大小寫,如果不注意就很容易出錯。後MainM2有對腳本增加了很多圖像控制和客戶端顯示控制。詳見請參照MainM2官方文檔
基本語法[@main] ;開始,以[@格式開頭和]符號結尾,支持數字、字母、文字。
#IF ;起始判斷
CheckGuildMemberCount < 100 ;判斷函式和值 操作符 ><=
#SAY ;對話框輸出
行會成員還不夠100人.啊\ \ ;對話內容,換行必須用\符號表示
你要繼續努力招人啊\
#ELSEACT ;判斷非,然後執行函式
goto @herom2 ;程式跳轉
[@herom2]
#IF
#ACT ;執行函式
sendmsg 0 [世界]:%s的幫派人數已經達到了100以上!! ;全局輸出函式
MESSAGEBOX 你的行會已經超過了100人口,恭喜啊! ;彈出對話框並break
變數分為自定義變數和系統變數,也可以分成全局變數和局部變數。
自定義變數功能: 自定義變數功能,不再受固定幾個變數限制.
使用方法:
三個步驟:
1、首先要聲明變數
2、讀取變數
3、保存變數
該變數支持增加、減少、腳本查看、檢查大小等功能,該功能的開發突破了變數使用受限制,利用該變數可製作出超強功能腳本。
腳本樣例:
=========================================
<聲明變數/@newvarInteger> \
<查看變數/@viewvarInteger>\
<讀取變數/@loadvarInteger> \
<保存變數/@savevarInteger> \
<增加變數/@calcvarinc> <檢查變數是否大於5/@checklarage5>\
<減少變數/@calcvardec> <檢查變數是否小於5/@checksmall5>\
<檢查變數是否等於5/@checkequal5>
[@calcvarinc]
#IF
#ACT
CALCVAR HUMAN QQQQ + 5 ;腳本命令CALCVAR支持對變數進行+ - * / =五種操作
GOTO @varcontrol
[@calcvardec]
#IF
#ACT
CALCVAR HUMAN QQQQ - 5
GOTO @varcontrol
[@checkequal5]
#IF
CHECKVAR HUMAN QQQQ = 5
#ACT
SendMsg 7 等於5
GOTO @varcontrol
#ELSEACT
SendMsg 7 不等於5
GOTO @varcontrol
[@checklarage5]
#IF
CHECKVAR HUMAN QQQQ > 5
#ACT
sendmsg 7 大於5
goto @varcontrol
#ELSEACT
sendmsg 7 小於5
goto @varcontrol
[@checksmall5]
#IF
CHECKVAR HUMAN QQQQ < 5
#ACT
sendmsg 7 小於5
goto @varcontrol
#ELSEACT
sendmsg 7 大於5
goto @varcontrol[@decInteger]
#ACT
DEC QQQQ 1
sendmsg 7 <$HUMAN(QQQQ)>
goto @varcontrol
[@addInteger]
#ACT
INC QQQQ 1
sendmsg 7 <$HUMAN(QQQQ)>
goto @varcontrol
[@loadvarInteger]
#IF
#ACT
LOADVAR HUMAN QQQQ VarSave.txt
sendmsg 7 OK
GOTO @varcontrol
[@savevarInteger]
#IF
#ACT
SAVEVAR HUMAN QQQQ VarSave.txt
sendmsg 7 OK
GOTO @varcontrol
[@viewvarInteger]
#ACT
sendmsg 7 <$HUMAN(QQQQ)>
GOTO @varcontrol
[@newvarInteger]
#IF
#ACT
VAR Integer HUMAN QQQQ
sendmsg 7 OK
GOTO @varcontrol
[@viewvarString]
<$HUMAN(QQQS)>
系統定義腳本變數
人物信息
變數名稱 | 說明 |
<$USERNAME> | 人物名稱 |
<$GUILDNAME> | 行會名稱 |
<$RANKNAME> | 行會職位名稱 |
<$LEVEL> | 等級 |
<$HP> | 生命值 |
<$AC> | 防禦力 |
<$MAXAC> | 最高防禦力 |
<$MAC> | 魔法防禦力 |
<$MAXMAC> | 最高魔法防禦力 |
<$DC> | 物理攻擊力 |
<$MAXDC> | 最高物理攻擊力 |
<$MC> | 魔法力 |
<$MAXMC> | 最高魔法力 |
<$SC> | 道術 |
<$MAXSC> | 最高道術 |
<$EXP> | 當前經驗值 |
<$MAXEXP> | 升級經驗值 |
<$PKPOINT> | PK點數 |
<$CREDITPOINT> | 聲望點數 |
<$GOLDCOUNT> | 金幣數量 |
<$GAMEGOLD> | 遊戲幣數 |
<$GAMEPOINT> | 遊戲點數 |
<$HW> | 腕力 |
<$MAXHW> | 最高腕力 |
<$BW> | 背包重量 |
<$MAXBW> | 最高背包重量 |
<$WW> | 負重力 |
<$MAXWW> | 最高負重 |
<$HUNGER> | 飢餓程度 |
<$LOGINTIME> | 登錄時間 |
<$LOGINLONG> | 登錄時長 |
<$DRESS> | 衣服 |
<$WEAPON> | 武器 |
<$RIGHTHAND> | 蠟燭 |
<$helmet> | 頭盔 |
<$necklace> | 項鍊 |
<$RING_R> | 右戒指 |
<$RING_L> | 右戒指 |
<$ARMRING_R> | 右手鐲 |
<$ARMRING_L> | 左手鐲 |
<$BUJUK> | 護身符 |
<$BELT> | 腰帶 |
<$BOOTS> | 鞋子 |
<$CHARM> | 寶石 |
<$CASTLENAME> | 沙城名稱 |
<$SFNAME> | 師傅名字 |
<$TDNAME> | 徒弟名字 |
<$FQNAME> | 夫妻名字 |
<$HEROGENDER> | 英雄性別 |
<$HEROJOB> | 英雄職業 |
<$HEROLEVEL> | 英雄級別 |
<$HERONAME> | 英雄名字 |
<$KILLER> | 殺人者名字 |
<$CREDIT> | 國戰人物榮譽值 |
<$NATIONNAME> | 國家名字 |
<$NATIONPEOPLE> | 國家人數 |
<$NATIONKING> | 國王名字 |
<$NATIONRANK> | 國戰人物封號 |
<$ARM> | 國家軍事力量 |
<$POLITICS> | 國家政治能力 |
<$NATIONGOLD> | 國庫資金 |
<$MAPS> | 國家占領地圖 |
<$ITEMTIMEX> | 限時物品時間,X=0-12 |
<$HEROSUCKDAMAGE> | 英雄傷害吸收 |
<$MAPCODE> | 地圖編號 |
<$SELFX> | 人物當前坐標 |
<$SELFY> | 人物當前坐標 |
<$SUCKDAMAGE> | 人物傷害吸收 |
<$GAMEDIAMOND> | 人物金剛石數量 |
<$GAMEGIRD> | 人物靈符數量 |
<$QUERYYBDEALLOG> | 顯示元寶交易記錄 |
<$CRYSTALEXP> | 天地結晶中的經驗值 |
<$CRYSTALNGEXP> | 天地結晶中的內力值 |
<$MAPNAME> | 地圖名字 |
變數名稱 | 說 明 |
<$SERVERNAME> | 伺服器名字 |
<$SERVERIP> | 伺服器IP位址 |
<$WEBSITE> | 遊戲網址 |
<$BBSSITE> | 論壇網址 |
<$CLIENTDOWNLOAD> | 客戶端程式下載地址 |
<$QQ> | 聯繫QQ號 |
<$PHONE> | 聯繫電話號碼 |
<$BANKACCOUNT0> | 銀行帳號信息 |
<$BANKACCOUNT1> | 銀行帳號信息 |
<$BANKACCOUNT2> | 銀行帳號信息 |
<$BANKACCOUNT3> | 銀行帳號信息 |
<$BANKACCOUNT4> | 銀行帳號信息 |
<$BANKACCOUNT5> | 銀行帳號信息 |
<$BANKACCOUNT6> | 銀行帳號信息 |
<$BANKACCOUNT7> | 銀行帳號信息 |
<$BANKACCOUNT8> | 銀行帳號信息 |
<$BANKACCOUNT9> | 銀行帳號信息 |
<$GAMEGOLDNAME> | 遊戲幣名稱 |
<$USERCOUNT> | 線上人數 |
<$DATETIME> | 當前日期時間 |
<$YEAR> | 當前年份 |
<$MONTH> | 當前月份 |
<$DAY> | 當前日期 |
<$HOUR> | 當前小時 |
<$MINUTE> | 當前分鐘 |
<$SECOND> | 當前秒 |
<$GAMEGOLDNAME> | 遊戲幣名稱 |
<$HIGHLEVELINFO> | 最高等人物信息 |
<$HIGHPKINFO> | 最高PK點數人物信息 |
<$HIGHDCINFO> | 最高攻擊力人物信息 |
<$HIGHMCINFO> | 最高魔法力人物信息 |
<$HIGHSCINFO> | 最高道術人物信息 |