仙境傳說RO :ra腳本加載結(jié)構(gòu)和開發(fā)語法講解

仙境傳說RO :ra腳本加載結(jié)構(gòu)和開發(fā)語法講解
大家好,我是艾西。上一篇文章中我們聊完了怎么在游戲中新建NPC,感覺還是有不少小伙伴沒有太看懂原理。今天艾西給大家深度講解一下腳本加載結(jié)構(gòu)和開發(fā)語法環(huán)境文檔。
我們最后都是以ra腳本為主要講解以及實(shí)操,那想完全掌握ra腳本查看相關(guān)的文檔是比不可少的。腳本文檔是在Pandas(服務(wù)端)的doc目錄中,找到script_commands.txt文件所有的文檔都在這里了。
?

文檔結(jié)構(gòu)有些語法約定:比如說前面加個(gè) * 就是命令的開頭(上一期我們用的*mes就是,搜索的時(shí)候可以直接加個(gè)*快查找命令)
參數(shù):文檔中使用<尖括號(hào)>括起來的,一般前面是命令后面接若干個(gè)參數(shù)
可選參數(shù):文檔中使用的是{花括號(hào)} 括起來的 可填可不填參數(shù) 打個(gè)比方我想傳送到某個(gè)地圖,先填地圖名字在填xy(坐標(biāo)),如果我不填入在{花括號(hào)} 內(nèi)的話那么就是默認(rèn)傳送到地圖入口
字符串:文檔中使用”雙引號(hào)”引起來的
?
腳本加載結(jié)構(gòu)
腳本加載由map server加載,目前總共是三個(gè)服務(wù)器分別是
login server登陸服,管理登陸賬號(hào)的
char server角色服,管理角色一個(gè)賬號(hào)可以有N個(gè)角色
map server地圖服,游戲服務(wù)器,基本所有上游戲邏輯都在這里例如打怪、NPC等
?
入口文件:npc/(pre-)re/scripts_ main.conf
寫死在代碼里的,map.cpp
void map_ reloadnpc(bool clear)
{
if (clear)
npc_ addsrcfile("clear", false); // this will clear the current script list
#ifdef RENEWAL
map_ reloadnpc_ sub("npc/re/scripts_ main.conf");
#else
map_ reloadnpc_ sub("npc/ pre-re/scripts_ main.conf");
#endif
}
注:map.cpp是不能配置的,也沒有必要配置,因?yàn)榭梢愿膶憇cripts_ main.conf文件,這個(gè)文件想加什么都可以直接填入加載
圖中能看到import(導(dǎo)入),這個(gè)文件是沒有任何NPC加載的都是導(dǎo)入文件比如說我們之前說的custom(GM自定義,自定義腳本都在這里)
?


?
?
就這相當(dāng)于文件夾管理scripts是父文件夾,文件夾里在分很多子文件夾大家都可以點(diǎn)進(jìn)去看看比如scripts_athena.conf文件就定義了很多NPC可以知道它是怎么去配NPC:
例 npc: npc/cities/alberta. txt 跟上文件路徑就可以加載NPC到服務(wù)器里面了,文件內(nèi)//的內(nèi)容都不會(huì)加載會(huì)直接跳過(斜杠是注釋,在文檔中注釋的內(nèi)容一般為綠色)。還有一個(gè)是delnpc這個(gè)不是很常用(是刪除一個(gè)NPC的意思)
?

?
加載所有文件后,服務(wù)器會(huì)先執(zhí)行所有的top-level commands,創(chuàng)建NPC,怪物生成器,地圖標(biāo)記等等。
(腳本里)大部分其實(shí)都是這些(頂級(jí)命令)
?

?
?
top-level commands需注意它傳參數(shù)是用的制表符(tab鍵)圖中打箭頭的就是制表符(直接空格的話是沒用的這里大家要注意一下,上一篇文章中忘記備注了)
?

在script commands.txt文檔中也有明確的表示制表符用tab
?

那么到了這里我們今天的仙境傳說RO :ra腳本加載結(jié)構(gòu)和開發(fā)語法講解教程就結(jié)束了,希望對(duì)有需要的小伙伴有幫助。我是馳網(wǎng)艾西我們下期見,感興趣的小伙伴記得多練習(xí)多實(shí)操,擁有一臺(tái)服務(wù)器可以做很多有趣的事情?。?!