標題:
[文字教學]
窗口型NPC更深解說
[打印本頁]
作者:
seasun
時間:
2009-10-24 01:58
標題:
窗口型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就是下一頁,在遊戲中這樣顯示,但並不是真的就是下一頁,真正用法要看下一行。
next
pressed= #這段語法要注意的是最前面的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
next
pressed=
gotowin=3
endbutton=
prevpressed=
gotowin=1
#在這段,有沒有發現我用了next和prev,而且寫了
next
pressed和
prev
pressed?
沒錯,因為有2個選項,「上一頁」和「下一頁」,
但是中間一定要加個
endbutton
來宣告這個按鈕結束,如果沒有加,
你點「下一頁」會變成跑到開頭頁(winno=1),
因為你沒有宣告下一頁鈕的結束,它會繼續跑prev的語法,它會以最下面的gotowin=1作執行,
也就是我明明按了「下一頁」,應該跑到winno=3這頁,
卻因沒有加endbutton=,會變成跑到開頭頁,
而「上一頁」,卻沒有任何作用,
若是prevpressed在上面,nextpressed在下面,這樣反而變成了
「上一頁」有作用,而「下一頁」沒作用。
endbutton=
endwin=
作者:
seasun
時間:
2009-10-24 02:39
#選擇型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,只能這樣「純觀賞」用......
寵物形之後,有空再寫吧@@
作者:
infixman
時間:
2010-10-17 14:03
整理的太好了
期待看到更多教學 @Q@
作者:
agent0800
時間:
2012-2-5 10:54
標題:
- -
補充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 編輯
]
作者:
唐伯虎
時間:
2012-2-7 12:24
相當詳細~謝謝您的分享~
作者:
yuleong
時間:
2014-11-4 14:49
好详细!!!又学习到东西了!!
歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/)
Powered by Discuz! 6.0.0