PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 數位影音討論群組 > 音樂軟體討論區
帳戶
密碼
 

  回應
 
主題工具
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation foobar 2000的SimPlaylist筆記...!!

僅是筆記..
後續再貼文...
各位有興趣的也可看看...
當然也可以發問...

開發者討論串:
http://www.hydrogenaudio.org/forums...showtopic=88411
Wiki:
http://wiki.hydrogenaudio.org/index..._simplaylist%29
下載頁面:
http://www.foobar2000.org/component...foo_simplaylist

目前遭遇到且待未來新版解決的限制:
1. 不能隱藏Column header, 有時對視感上來說不甚美觀
2. 目前不支持任何color functions, 但可以用特殊符號來表示:
Column colors
Use < and > characters to dim or apply the highlight color to individual parts, with up to three levels, for example: <dimmed>, >highlight<, >>more highlight<<. Note that text in parentheses "(...)", brackets "[...]", and braces "{...}" is dimmed automatically. Color functions including $rgb, $hsl, $blend, and $transition are not supported.
3. AlbumArt圖案沒有glass或著shadow效果, 質感就比較差一點...

有沒有網兄在使用的??
透過這個3rd plugin可以做出簡單的清單視覽效果...
下圖為wiki的其中一張範例:

這本篇會以如下圖的呈現效果作為介紹與使用:

來看看組態設定部分..

這個Custom Columns可以用來自定義要呈現的行部分, 從圖中可以看到我定義了一個column變量, 名稱為TitlePlayingCheck..
便對應到下圖的呈現:

再來我們再看看最重要的Groups組態設定, 如下圖所示:

組要分成三個部分:
1. Headers: 一個清單的表頭
2. Columns: 一個清單的左邊行區塊覆蓋部分
3. Groups: 清單內的分類與分組
這三個區塊分別對應了下圖所示:

可以看到它的組成非常簡單, 在這篇範例我建立了一個Presets設定名稱為:
HEADERS:[%date%]%album%#COLUMNS:%album%#GROUPS:%directoryname%

你可以從Presets項目看到這個設定變量, 當我建立這個設定變量後..
我只要從下圖的選項選入便可啟用:


就這些步驟便可完成對於SimPlaylist的使用, 因此在整體使用上並沒有太大難度...
當然, 有些人會想到, 要怎麼自定義所想要呈現的清單效果呢?..這個細部的部分就稍微比較麻煩了...
因為這需要簡單編程上的實現, 首先你必須要稍微熟悉一下TitleFormatting語法..
http://wiki.hydrogenaudio.org/index...tting_Reference
至少它比CUI插件的使用簡單很多了....

補2011/11/05: 一個Headers的特殊範例:

是這樣的, 假設我遇到一個情況...
我從MediaLibrary綁定一個路徑, 假設為 D:\Musics\
這個目錄有許多相關的專輯目錄...
我舉例有幾個呈現形式:
ex1:
Musics--> Test1--> Test1.cue
ex2:
Musics--> Test2 --> Test2-1--> Test2-1.cue
ex3:
Musics--> Test3--> Test3-1.cue
Musics--> Test3--> Test3-1.cue
首先必須有條件來方便規範Header..
1. 對於Test1, Test2或著Test3代表一個總專輯
2. 對於Test2下可能會出現各種子專輯, 並且他可能還會夾帶在子目錄裡面
3. 對於Test3的案例其實跟Test2一樣, 只是他的子專輯檔案沒夾帶在子目錄, 反而存在總專輯目錄(Test3)下
4. 我規定這是一個2層目錄結構形式
5. Test2的目錄名稱就是總專輯名稱, 例如:
D:\Musics\FINAL FANTASY XIII ORIGINAL SOUNDTRACK\FINAL FANTASY XIII ORIGINAL SOUNDTRACK - DISC 2\FINAL FANTASY VIII ORIGINAL SOUNDTRACK - DISC 3.cue
6. 那麼Test3就是像這樣的結構:
D:\Musics\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK - DISC 1.cue
由於在Test3的情況比較特別, 因為對於另一個Groups設定來說有另外的判別設計, 在這邊可以不理..
那麼我想要達到以下的Header效果..
1. ex1: 只顯示Test1標題
2. ex2: 只顯示Test2標題, 而不是往下的Test2-1
3. ex3: 只顯示Test3
2. ex2: 跳脫Test2-1
在定義完這些規則後, 來建立一個對於header的pattern...
首先, 我只要判讀最上層的目錄(Test1~Test3)是否存在子目錄, 如果存在代表這些專輯都在個別的子目錄下...
我建立這樣的語法: $strstr(%directoryname%,$directory(%path%,2))
$strstr表示會從%directoryname%抓取是否與$directory(%path%,2)的頂層目錄一樣的字串..
有返回true(1); 否則返回false(0)...
然後我們和$if的條件操作進行串接:
$if($strstr(%directoryname%,$directory(%path%,2)), 傳回頂層目錄名稱, 直接回貼上層目錄)
對於傳回頂層目錄名稱的情況:
$directory(%path%,2)
對於直接回貼上層目錄的情況:
$replace(%filename%,%filename%,%directoryname%)
用$replace()是有點多餘, 其實直接%directoryname%就可以了...
因此整段pattern再附加%date%為:
['['%date%']']
$if($strstr(%directoryname%,$directory(%path%,2)),
$directory(%path%,2),
$replace(%filename%,%filename%,%directoryname%)
)

補2011/11/05: 設計的Album List的pattern:
這個不多說了.., 我個人對於2層目錄形式設計的一種pattern..
有採用這樣形式的人可以用看看..
$if($strstr(%directoryname%,$directory(%path%,2)),
[$directory(%path%,2)]|[%filename%],
$if($strcmp(%filename%,%directoryname%),[%directoryname%],[%directoryname%]|[%filename%])
)|['['%tracknumber%']' ][%title%]
效果展現如下:
     
      
__________________

此文章於 2011-11-06 09:46 PM 被 vxr 編輯.
舊 2011-11-06, 09:43 PM #1
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

補2011/11/05: Groups項目的使用
Group可以說是Header下的子群組, 從下面這張圖便可輕易明白:

這邊我們來看一個比較麻煩一點的案例, 當然依然是以二層式目錄架構為主..
先分析出三種檔案呈現架構:
第一種呈現: 單層+單一專輯

這個呈現架構較為簡單, 他只有一層, 單純在Groups的pattern撰寫上其實沒甚麼特別的難度...
第二種呈現: 單層+多張子專輯(更抽象化的角度來看, 就是一個專輯多張CD物件)

這個情況在pattern的設計上就比前一個要靈活一點...
第三種呈現: 雙層+多個子目錄+每個子目錄存在一張專輯

這個狀況會比較麻煩, 這代表著第一層是為總專輯, 而第二層的每個子目錄皆為CD目錄, 一個CD目錄包含一張CD物件檔..
不管如何, 這三種案例皆要達到一個目標: Groups的一致性呈現
甚麼意思呢? 從第一個呈現來看, 他只有一層架構, 如果透過Groups直接設定, 例如我使用下面的幾種TitleFormatting語句:
%album%, %filename%,$directory(%path%,1)或著%diectoryname%
這樣會有一種問題出現: Group的名稱和Header名稱重疊, 甚麼意思呢? 請看下圖...

從這張圖可以看到, 他只有一張專輯, 可是Header和Group的名稱卻重疊了, 這個資訊重複的情況並不是所希望的...
我只希望他有一個情況: 只會有一個名稱, 也就是如下圖所示:

沒有重疊的資訊, Group反而消失了, 這個情況相當合理, 這是第一種呈現所要達到的結果...
再來看第二種呈現的問題, 他首先是單層目錄下有多張CD專輯檔案...
如果直接使用%album%, %filename%語句等等, 顯然是相當合理的, 可以再參考這張圖..

這是單層目錄架構+多張CD物件, 但是如果直接使用%album%, %filename%, %directoryname%語句等等...
便會違反第一種呈現, 因此要考量一點: 呈現各個Groups, 但是不可違反第一種呈現..
最後是比較麻煩的第三種呈現, 因為它是雙層目錄架構夾帶個張CD物件檔...
同樣直接使用%album%,%filename%語句等等依然可以達到目的..

但是這樣使用違背了第一種呈現規則, 多了第三種呈現, 使得解決上較為麻煩, 處理上也需要一些技巧...

看看上圖這張, 舉一個範例來說明:
D:\Musics\FINAL FANTASY XIII ORIGINAL SOUNDTRACK\FINAL FANTASY XIII ORIGINAL SOUNDTRACK - DISC 4\
對於上面這個路徑來說, 它是雙層結構, 因為它包含了兩個目錄:
1. FINAL FANTASY XIII ORIGINAL SOUNDTRACK
2. FINAL FANTASY XIII ORIGINAL SOUNDTRACK - DISC 4
對於1. 來說, 如果它的名稱存在於2. 的名稱部分裡, 代表它是雙層架構, 這種理解上其實並不困難..
另外再看一個範例:
D:\Musics\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK\
從這個範例來看, 它只有一層目錄, 所以相當單純, 對應於前面那張Dir1與Dir2的區塊圖來說. 它只有Dir1的存在...
如果我們使用這個TitleFormatting來判斷:
$strstr(%directoryname%,$directory(%path%,2))
$directory(%path%,2)表示第一層目錄(存放實體檔案目錄的再上層目錄); %directoryname%則是存放實體檔案的目錄...
對於前面第一個路徑來說:
D:\Musics\FINAL FANTASY XIII ORIGINAL SOUNDTRACK\FINAL FANTASY XIII ORIGINAL SOUNDTRACK - DISC 4\
FINAL FANTASY XIII ORIGINAL SOUNDTRACK被包含在FINAL FANTASY XIII ORIGINAL SOUNDTRACK - DISC 4名稱裡, 因此它是雙層目錄結構, 相當合理. 在看第二個路徑:
D:\Musics\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK\
如果套用剛剛那個語句, 會變成它的目錄結構判斷為:
第一層: Musics
第二層: FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK
可以看出這是不相等的, 因此直接判定為它是單層結構, 這樣單雙層的問題就解決了. 只要用一個條件判斷合併就即可:
$if($strstr(%directoryname%,$directory(%path%,2)),雙層目錄, 單層目錄)
對於雙層目錄來說, 只要單純加入使用一個語句便可:
%album%, %filename%, %directoryname%或著$directory(%path%,1)等等, 以下形式:
$if($strstr(%directoryname%,$directory(%path%,2))
, %directoryname%
, 單層目錄)
剩下就只有單層目錄的問題要處理, 這個問題要解決兩種狀況:
1. 如果只有一張CD物件檔案, Group不可呈現
2. 如果有多張CD物件檔案, 要呈現各個Groups
來看種路徑案例呈現:
ex1: 單個檔案
D:\Musics\FINAL FANTASY VII REUNION TRACKS\FINAL FANTASY VII REUNION TRACKS.cue
ex2: 多個檔案
D:\Musics\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK - DISC 1.cue
D:\Musics\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK\FINAL FANTASY VII ADVENT CHILDREN ORIGINAL SOUNDTRACK - DISC 2.cue
對於ex1來說, 單個檔案的CD物件名稱, 對於%directoryname%來說是相等的; 而在ex2而言, %directoryname%與%filename%卻是不相等的, 因此可以使用這個語句判斷:
$strcmp(%filename%,%directoryname%)
如果相等就代表它只有一個CD物件檔案, 反之則是多個CD物件檔案, 和$if條件式合併如下:
$if($strcmp(%filename%,%directoryname%)
,
,%filename%)
條件式表明如果相等, 傳回空, 不出現Group, 否則就傳回%filename%, 使Group呈現. 這個結果是相當合理的....
再把這個條件式與前面的$if條件式合併如下:
$if($strstr(%directoryname%,$directory(%path%,2))
,%directoryname%
,$if($strcmp(%filename%,%directoryname%),,%filename%)
)
這個單雙層目錄呈現的問題便可得到解決, 但是要注意一點!
路徑命名原則是重要的, 否則不一致的情況, 無法得到解決! 這點要注意, 整合性的路徑命名是有效方便檔案管理的...

補2011/11/06: 被選取項目(selected item)閃爍效果
由於DUI不支援豐富的color functions...
因此$rgb(), $blend(), $hsl()等語句是沒辦法使用的...
對於目前正在撥放的被選取項目, 光靠一個箭頭(arrow)...
標示性稍有薄弱, 利用下面的Title Formatting語句實現基本的閃爍(flash)效果...
$if(%isplaying%,$ifequal($mod(%playback_time_seconds%,2),0,<<%title%>>,>>%title%<<),[%title%])
這是一個比較簡單的方式, 當然你也可以結合$progress(), $padcut(), $substr()等語句..
來實現標示更強烈的移動效果, 當然這複雜度就會比較高了...
下面這個是foobar的windows title部分, 看看就好...
$ifgreater($mod(%playback_time_seconds%,10),5,'['%codec%']''['$div(%samplerate%,1000)$ifequal($mod(%samplerate%,1000),0,,$replace($div(%samplerate%,100),$div(%samplerate%,1000),.))KHz']''['%bitrate%Kb']'[%album%],[%artist% - ]['['%tracknumber%']' ][%title%])
 
__________________
舊 2011-11-06, 09:45 PM #2
回應時引用此文章
vxr離線中  
oScARSh
*停權中*
 
oScARSh的大頭照
 

加入日期: Mar 2006
文章: 4,081
這個我也有玩過
特色是相當好設計, 有smooth scrolling和它不用用到column UI

當然是有些缺點所以我放棄了
第1就是它就真的只能開Default UI去啟動這些東西,
也就是再也不能用Panel Stack Splitter去設計自己的格式
第2就是它不能把grouping收起來只剩album title
就像下圖一樣, 這對我來說蠻重要的

舊 2011-11-06, 10:03 PM #3
回應時引用此文章
oScARSh離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

引用:
作者oScARSh
這個我也有玩過
特色是相當好設計, 有smooth scrolling和它不用用到column UI

當然是有些缺點所以我放棄了
第1就是它就真的只能開Default UI去啟動這些東西,
也就是再也不能用Panel Stack Splitter去設計自己的格式
第2就是它不能把grouping收起來只剩album title
就像下圖一樣, 這對我來說蠻重要的

http://dl.dropbox.com/u/30865799/fb2k.png

我個人沒有習慣去收group..
所以倒是無所謂啦.....
只要簡單就好...
__________________
舊 2011-11-06, 10:07 PM #4
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

正向計秒數:
$mod(%playback_time_seconds%,$add($len(%title%),1))
反向計秒數:
$sub($len(%title%),$mod(%playback_time_seconds%,$add($len(%title%),1)))
ex:
$puts(titleLen,$len(%title%))
$substr(%title%,$mod(%playback_time_seconds%,$add($get(titleLen),1)),$get(titleLen))

ex:
$substr(%title%,0,$sub($len(%title%),$mod(%playback_time_seconds%,$add($len(%title%),1))))

DUI在相關撰寫上有一個麻煩點..
不支援Global Variable...
__________________

此文章於 2011-11-06 10:22 PM 被 vxr 編輯.
舊 2011-11-06, 10:13 PM #5
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

循環式標題技巧:
比較複雜一點...
$puts(titleLen,$len(%title%))
$puts(titleLenAdd1,$add($get(titleLen),1))
$puts(timeModTitleLen,$mod(%playback_time_seconds%,$get(titleLenAdd1)))
$puts(rightMove,$right(%title%,$padcut($get(timeModTitleLen),$get(titleLen))))
$get(rightMove)
$substr(%title%,0,$sub($get(titleLen),$get(timeModTitleLen)))

由左到右跑馬燈標題循環...
__________________
舊 2011-11-06, 10:48 PM #6
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

引用:
作者vxr
循環式標題技巧:
比較複雜一點...
$puts(titleLen,$len(%title%))
$puts(titleLenAdd1,$add($get(titleLen),1))
$puts(timeModTitleLen,$mod(%playback_time_seconds%,$get(titleLenAdd1)))
$puts(rightMove,$right(%title%,$padcut($get(timeModTitleLen),$get(titleLen))))
$get(rightMove)
$substr(%title%,0,$sub($get(titleLen),$get(timeModTitleLen)))

由左到右跑馬燈標題循環...

將閃爍(flash)標題效果一起合併...:
$puts(titleLen,$len(%title%))
$puts(titleLenAdd1,$add($get(titleLen),1))
$puts(timeModTitleLen,$mod(%playback_time_seconds%,$get(titleLenAdd1)))
$puts(rightMove,$right(%title%,$padcut($get(timeModTitleLen),$get(titleLen))))
$puts(loopTitleMove,$get(rightMove) $substr(%title%,0,$sub($get(titleLen),$get(timeModTitleLen))))
$if(%isplaying%,$ifequal($mod(%playback_time_seconds%,2),0,<<$get(loopTitleMove)>>,>>$get(loopTitleMove)<<),[%title%])

另外本樓盡量注重coding上的技巧使用.....
各位如果有更好的title formatting語句效果..
不妨可以分享一下...
__________________

此文章於 2011-11-06 11:06 PM 被 vxr 編輯.
舊 2011-11-06, 11:01 PM #7
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

左右數位移:
$puts(titleLen,$len(%title%))
$puts(titleLenMul2,$mul($get(titleLen),2))
$puts(position,$mod(%playback_time_seconds%,$get(titleLenMul2)))
$puts(leftRightMove,$ifgreater($get(position),$get(titleLen),$sub($get(titleLenMul2),$get(position)),$get(position)))
$get(leftRightMove)

ex:
$puts(titleLen,$len(%title%))
$puts(titleLenMul2,$mul($get(titleLen),2))
$puts(position,$mod(%playback_time_seconds%,$get(titleLenMul2)))
$puts(leftRightMove,$ifgreater($get(position),$get(titleLen),$sub($get(titleLenMul2),$get(position)),$get(position)))
$pad(,$get(leftRightMove))[%title%]
__________________
舊 2011-11-07, 02:51 AM #8
回應時引用此文章
vxr離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

補2011/11/07: 左右級距部分字串標示控制
這是我寫的另一個特效代碼...
此範例在設計上相當彈性, 因為它的控制標示字串允許更變...
不過這個範例的缺點就是代碼並不容易理解...
假設有一個title正在被撥放..
他想要的效果為:
第一秒: ABCDEFGHI
下一秒: ABCDEFGHI
數到最後: ABCDEFGHI
在來從A開始起跳標示, 由此可以它是一個一個文字偏移標示...
假設這個標示文字設為cPos, 那麼左級距為:dLeft=cPos-1
因此, 右級距為:dRight=T-cPos
我可以導出這樣的代碼:
//titleLen=字串總長度
$puts(titleLen,$len(%title%))
//position=(當前播放秒數/字串總長度)的餘數解+1
//+1的情況是避免被整除掉, 這個是有意義的
$puts(position,$add($mod(%playback_time_seconds%,$get(titleLen)),1))
//左級距控制=從字串由左往右逐一增加文字, 但是要-1, 不可包含position的位址, 因為position就是cPos
$puts(dLeft,$left(%title%,$sub($get(position),1)))
//當前標示文字的位址取出單一文字; cP=position
$puts(cPos,$substr(%title%,$get(position),$get(position)))
//右級距控制=總長度T(titleLen)扣除當前標示文字的位址, 剩下的就是右級距的數值; dRight=T-cPos
$puts(dRight,$right(%title%,$sub($get(titleLen),$get(position))))
//最後我將這些文字效果呈現
<<$get(dLeft)>>
>>$get(cPos)<<
<<$get(dRight)>>
這個範例是一個稍微簡單一點的作法, 不過它有一個問題就是...
如果我想要將標示文字變成1個以上, 那要如何解決?..
在這種情形下, 就會複雜許多, 使用cP控制左右級距, 反而更難處理...
這時候我可以這樣想, 標示一組文字假設它的標示數量為P
總文字長度為T, 那我可以將T除以P, 就是一串文字拆成T/P的等份數量..
N=T/P, 那對於當前的dLeft=k的話...
cP=k+1, 所以, dRight=T-cP..
反而變成從dLeft開始計算, 至cP到最後的dRight...
那麼我們先來看看這段代碼:
$puts(markNum, 2)
$puts(titleLen,$len(%title%))
$puts(partNum,$div($get(titleLen),$get(markNum)))
$puts(partNum,$add($get(partNum),$mod($get(titleLen),$get(markNum))))
$puts(position,$mod(%playback_time_seconds%,$add($get(partNum),1)))
$puts(dLeft,$get(position))
$puts(cPos,$add($get(dLeft),1))
<<$left(%title%,$mul($get(dLeft),$get(markNum)))>>
>>$substr(%title%,$add($mul($get(dLeft),$get(markNum)),1),$mul($get(cPos),$get(markNum)))<<
<<$right(%title%,$sub($len(%title%),$mul($get(cPos),$get(markNum))))>>
很可悲的是, 它不太好懂, 連我自己寫到最後都快看不懂再寫啥了......
首先, markNum就是我要標示的文字數量
titleLen為字串總長度
partNum被求出為titleLen/markNum的分組數量...
另外要考量到無法整除的問題, 不整除會加1...
$puts(partNum,$add($get(partNum),$mod($get(titleLen),$get(markNum))))
不需要搞甚麼條件判斷..
我從partNum的分組數量先算出dLeft=position...
$puts(position,$mod(%playback_time_seconds%,$add($get(partNum),1)))
這種餘數解用法, 前面已經用過好幾次了, 各位可以自行理解....
$puts(cPos,$add($get(dLeft),1))這段就是cP=k+1...
得出這些關鍵要素後, 便可直接寫出剩下代碼...
<<$left(%title%,$mul($get(dLeft),$get(markNum)))>>
dLeft=k x P,
>>$substr(%title%,$add($mul($get(dLeft),$get(markNum)),1),$mul($get(cPos),$get(markNum)))<<
看到這段, 直接昏頭...Orz
它的形式為:cP=(dLeft+1)+((k+1)x P)....
最後, <<$right(%title%,$sub($len(%title%),$mul($get(cPos),$get(markNum))))>>
dRight=T-((k+1)x P), 看下去一整個要命....
各位, 這個需要花些時間去理解, 我也不好去解釋, 它並不太好說明....
當然, 您也可以直接抓取該代碼運作看看結果..
它實際上達到的效果如下, 如果標示數量為2:
ABCDEFG
ABCDEFG
ABCDEFG
...
ABCDEFG
ABCDEFG
...
文字標示相當彈性....
__________________
舊 2011-11-07, 09:21 PM #9
回應時引用此文章
vxr離線中  
狂人日記
Senior Member
 
狂人日記的大頭照
 

加入日期: Mar 2007
文章: 1,001
高手高手!!! 這些語法都去哪裡才能學? 你是跟誰學的?
舊 2011-11-08, 03:14 AM #10
回應時引用此文章
狂人日記離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是08:19 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2024。