打印

[文字教學] 窗口型NPC更深解說

窗口型NPC更深解說

這是拿冷楓大大分享的NPC製作資料集合的窗口說明NPC去衍生出來的,

一個視窗最多只能顯示「8行」文字,但除非有例外情況,會減少會增多,我將在下面做說明。



#窗口說明型 enemy=windowman|conff:chatroom/chatroom.conf
winno=1                  #頁編號
message=第一行
message=第二行
message=第三行
message=第四行
message=第五行
message=第六行
message=第七行
message=第八行
message=第九行  #我上面明明只說到第八行,為什麼我會寫到第九行呢?別急,待會會慢慢說明。
message=第十行

message=第十一行
wintype=0               #窗口類型,種類達多16種,但有其中幾種我認為好像沒用處,不過我也放上說明。
                                    0,普通,簡單來說就是沒有辦法做「選擇」,會顯示第1到第8行文字。
                                    1,輸入,可以做文字的輸入,就像猜謎之家他問你什麼村的留言板位置,
                                         然後要你輸入「東:XX 南:XX」,會顯示第1到7行的文字,
                                         其實這就跟某些NPC說對用語才可以買東西或是進入什麼地方相同,沒有時間研究@@
                                    2,選擇,可以做選擇,第幾行可以選擇要看情況,
                                          最多到可以選擇到第十行,只是還是一樣要看情況。
                                    3,寵物,這會跳出可以選擇的寵物的視窗,用法很複雜,我在下面再說。
                                    4,隊友,這會跳出可以選擇的隊伍的視窗,用法很複雜,我在下面再說。
                                    5,寵物和隊友,這會跳出可以選擇寵物和隊友的視窗,用法很複雜,我在下面再說。
                                    6,買賣,這會跳出可以選擇「買、賣、出去」的視窗,
                                          不過用這個指令寫買賣NPC太費工了,不建議使用也就不解說了。
                                    7,買賣,直接跳出買的視窗,有用嗎?不解說了。
                                    8,買賣,直接跳出賣的視窗,還是沒用吧!
                                    9,聲望買賣,直接跳出買的視窗,只是多了名聲查看。
                                    10,普通,跟0一樣沒有辦法做「選擇」,只是視窗大小跟留言板一樣大,顯示第1到第17行文字。
                                    11,輸入,跟1一樣可以做文字的輸入,只是視窗大小跟留言板一樣大,顯示第1到第16行文字。
                                    12,買賣,這會跳出可以選擇「買、賣、出去」的視窗,又出來幹嘛......
                                    13,買賣,直接跳出買的視窗,別鬧了......
                                    14,家族,會跳出創造家族的視窗......
                                    15,家族,會跳出可以加入家族的視窗......
buttontype=             #按鈕類型,目前已知有next(下一頁),prev(上一頁),cancel(CANCEL),
                                     none(什麼按鈕都不會出現),no(取消),ok(OK),yes(確定)。
                                     一個視窗同時可以顯示4個指令,例如同時顯示下一頁、上一頁、確定、取消。
                                     如果超過4個,它會依照石器內設去排定最前面4個,
                                     也就是說如果打next | prev | no | yes | cancel或是cancnel | yes | no | prev | next,
                                     在遊戲中由左至右會依序顯示「CANCEL」「確定」「取消」「上一頁」,而「下一頁」則不會出現。
nextpressed=          #別急,待會告訴你XD
gotowin=                  #跳至窗口編號第X號
endbutton=              #結束按鈕語法,下面會說。
endwin=                   #結束視窗,下面會說。



範例是最好的舉例,我來用幾個範例做解釋吧。

#普通型
winno=1                #開頭對話頁,一定要用1,不然不會出現視窗。
message=首先介紹普通的視窗,這是單純的文字視窗顯示,就像任務型NPC會用到的nomallWindowMsg,
                                你可以只用1個message就好,多的文字會顯示到第二行,
message=第二個message的文字會斷行,就像是常用的\n,但是在這語法裡用\n就真的只會顯示\n。
wintype=0
buttontype=next     #next就是下一頁,在遊戲中這樣顯示,但並不是真的就是下一頁,真正用法要看下一行。
nextpressed=          #這段語法要注意的是最前面的next,因為上一句的按鈕類型是next,
                                  所以這一句前面也必須改成next開頭,如果上一句用next,而這句用prev,
                                  那它是不會理你,也就是直接關視窗了。
gotowin=3                #跳至第3號的winno,意思就是按下「下一頁」之後,會跳到winno=3那一頁。

                                  除了開頭winno一定要打1外,下面的可以亂跳,先3再2,或是直接100、50。
endbutton=
endwin=


winno=50
message=第50頁

meddage=接下來說明同時存在2種按鈕。
wintype=0
buttontype=next|prev
nextpressed=
gotowin=3

endbutton=
prevpressed=
gotowin=1
              #在這段,有沒有發現我用了next和prev,而且寫了nextpressed和prevpressed?

                                   沒錯,因為有2個選項,「上一頁」和「下一頁」,
                                   但是中間一定要加個endbutton來宣告這個按鈕結束,如果沒有加,
                                   你點「下一頁」會變成跑到開頭頁(winno=1),
                                   因為你沒有宣告下一頁鈕的結束,它會繼續跑prev的語法,它會以最下面的gotowin=1作執行,
                                   也就是我明明按了「下一頁」,應該跑到winno=3這頁,
                                   卻因沒有加endbutton=,會變成跑到開頭頁,
                                   而「上一頁」,卻沒有任何作用,
                                   若是prevpressed在上面,nextpressed在下面,這樣反而變成了
                                   「上一頁」有作用,而「下一頁」沒作用。
endbutton=
endwin=





本帖最近評分記錄
  • yang 聲望 +5 精品文章 2009-10-24 09:04

TOP

#選擇型1
winno=3
message=這是第3頁,因為輸入型的有其他更好用的NPC可以用,所以沒有研究,
message=如果你問我為什麼上面那頁是50,這頁卻是第3,
message=那我只能告訴,你的經驗還得多累積才看的懂。

message=或是上面打的你都沒在看.....
message=如果你還想問我為什麼這頁的message多達了7個,
message=天啊,我不想再教你了......
wintype=2

buttontype=none     #因為沒有選擇鈕,所以本來下面的pressed改成selected,
selected=                #選擇視窗中的第1個選項,然後到第4頁。

gotowin=4
endbutton=             #選擇也算是按鈕的一種吧,不要忘了一個選項也給他一個結束,少一個它會跳下一個

                                 也就是如果本來應該跳到第4頁,卻會跳到第5頁,而選項2會跳到第6頁。
selected=                #選擇創窗中的第2個選項,然後到第5頁,剩下的以此類推。
gotowin=5
endbutton=
endwin=


額外說明:選擇型1的文字,第一行message是「這是第3頁,因為輸入型的有其他更好用的NPC可以用,所以沒有研究」,這一行沒辦法做選擇,只是普通文字,第二行開始才可以選擇,如果文字超過40位元,就會跳到下一行,1個中文字=2位元,1個英文字不管大小寫都是1位元,如果跳到下一行,則被截斷的字會變成選項,例如文字到「以」就會跳到第2行,而「以用,所以沒有研究」,就變成選項。
最多可以寫9行,但是最後的兩行,它不會有動作......所以可以選擇的選項寫7行就好。

#選擇型2
winno=4
message=3

message=類型2打算來說明選項最多化,
message=

message=
message=類型1的第一句,
message=我刻意超過40位元,
message=類型2我不打算讓它超過,
message=但我打算寫12句的message,
message=為什麼呢
message=上面有兩個空白是我故意的,
message=又是為什麼呢?
message=下面綠色文字會做說明。
wintype=2

selected=
gotowin=5
endbutton=

endwin=

額外解說:選擇型2的文字我寫了10行,第一行message是「3」,這並不是沒有用處的,而是設定「純文字」的行數,寫2表示純文字到第2行,,第3行開始才可以做選擇,寫3表示純文字到第3行,第4行開始才可以做選擇,但是因為第1行不顯示關係,所以「類型2打算來說明選項最多化,」變成了第1行,不過純文字寫到第5行的話,下面可以寫的選項就變成了5個,因為一個視窗只容許10行,所以到「又是為什麼呢?」是最後一個選項,只是會超出視窗,而「下面綠色文字會做說明。」則不會出現。


#選擇型3

winno=5
message=1

message=類型3打算來說明選項空格化,
message=

message=這次還是故意空1個,
message=但只寫6個message。
wintype=2

selected=
gotowin=6
endbutton=

selected=
gotowin=7
endbutton=

selected=
gotowin=8
endbutton=

endwin=


額外解說:選擇型3的文字我寫了6行,但純文字改回只有1行,這樣子第2行本來是選項的,卻因為沒有文字,變成不能選取,會直接跳過,所以變成「這次還是故意空1個,」才可以選取,而且會跳到第7頁,並不會說因為一個不能選取,而跳到第6頁

其實,這種類型的NPC都無法用來製作交換的NPC,只能這樣「純觀賞」用......

寵物形之後,有空再寫吧@@

TOP

整理的太好了
期待看到更多教學 @Q@

TOP

- -

補充wintype=2選擇型npc例子

data\npc\sainasu\jujutu01.conf


# 法術的說明:薩姆吉爾篇#
#####################
winno=1
message=關於法術,你想知道哪些事情呢?
message=
message=關於法術的基本知識    // gotowin=100
message=回復、復活系的法術    // gotowin=200
message=狀態異常系法術      // gotowin=300
message=淨化系法術         // gotowin=400
message=屬性變化系法術    // gotowin=500
message=防禦系法術         // gotowin=600
wintype=2 // 選擇窗口
buttontype=none
selected=
gotowin=
endbutton=
selected=    
gotowin=100   │ 一組 選擇選項,goto winno 100,結束
endbutton=   
selected=
gotowin=200
endbutton=
selected=
gotowin=300
endbutton=
selected=
gotowin=400
endbutton=
selected=
gotowin=500
endbutton=
selected=
gotowin=600
endbutton=
endwin=  // 整個winno 1結束


#########################基本############################


winno=100
message=「關於法術的基本知識」
message=
message=法術是借用精靈的能力來使出不可思議的力量。
message=精靈據說是寄宿在物體、自然界的生物裡。像樹木
message=石頭等等。借用精靈的力量的時候會依照
message=其威力的大小來奪取等量的
message=玩家的氣力。
wintype=0 // 只是純粹的窗口視窗
buttontype=next // 按鍵 next(下一頁)
nextpressed=   // 如果按了next
gotowin=101     //  則goto winno 101
endbutton=    //  結束這個button指令
endwin=  // 整個winno 100結束


winno=101
message=而法術最終也就是向精靈借用力量,
message=而那些精靈就是寄宿在各個武器、
message=防具、飾品裡。
message=而要使用那些法術的話一定要裝備
message=有寄宿那精靈的武器、防具。
message=
message=
wintype=0
buttontype=ok|prev
prevpressed=
gotowin=1
endbutton=
endwin=


#########################回復、復活系法術############################

winno=200
message=「回復、復活系法術」
message=
message=回復系的精靈共有治癒精靈哈魯、滋潤精靈
message=芙蕾雅、神恩精靈提歐這三種精靈。
message=哈魯只能回復玩家、而芙蕾雅是可回復
message=我方一人或寵物一匹的精靈、至於
message=提歐,是可以對全員施展回復法術
message=的精靈。
wintype=0
buttontype=next
nextpressed=
gotowin=201
endbutton=
endwin=


winno=201
message=回復法術是必備的法術之一。而精靈主要
message=是寄宿在衣服、鎧甲等防具裡。
message=還有,復活系的精靈有希魯菲爾、雅魯
message=、哈恩等三種。不過基本上
message=其效果卻相差很大。
message=他們回復的量的順序是希魯菲爾、雅魯
message=、哈恩。
message=
wintype=0
buttontype=next
nextpressed=
gotowin=202
endbutton=
endwin=


winno=202
message=在戰鬥中如果寵物昏厥了,記得要
message=把他們救活喔!忠誠度不會下降很多
message=而且又有經驗值。這是很重要的。
message=
message=
wintype=0
buttontype=ok|prev
prevpressed=
gotowin=1
endbutton=
endwin=


。。。 太長故略 。。。

---------------------------------------------

//回上一頁,,
buttontype=prev
prevpressed=
gotowin=
endbutton=

//下一頁,,
buttontype=next
nextpressed=
gotowin=
endbutton=

[ 本帖最後由 agent0800 於 2012-2-5 10:55 編輯 ]
== 客製化開發Lua NPC、服務端功能 有興趣可站內短訊息聯絡 ==

TOP

相當詳細~謝謝您的分享~

TOP

好详细!!!又学习到东西了!!

TOP