[海貓] 新.汝は人狼なりや?規格式樣書
看板Expansion07 (龍騎士07)作者SmallBeeWayn (喵喵叫的蜜蜂貓)時間17年前 (2009/02/05 04:55)推噓32(32推 0噓 38→)留言70則, 12人參與討論串1/6 (看更多)
0.規格書的規格書
1.Notion
2.資料結構
3.網頁結構
4.工作分工
5.系統延伸
0.規格書的規格書==========================================================
要討論請到higurashi版回應或推文, 主要規格書修改會一直編輯這篇文章
第一章-Notion
各種於設計期間/開發期間/晚上睡覺夢到的點子
未必要實際應用於程式中....但任何點子都可能成為重要的依據
這是在初期開發期間最重要的
也是最需要集思廣益的
第二章-資料結構
當然也可以說是資料庫結構,但事實上只要是陣列變數都屬於此章的範圍
不過初期設計當然還是從資料庫結構開始....
然後是陣列結構,最後才是定義所有的變數名稱
第三章-網頁結構
所有網頁的名稱, 負責的工作
相互之間傳遞的引數內容,從屬關係
要等第二章弄差不多才要開始處理
第四章-工作分工
作為一個(希望)中型開發計畫
只要2,3章決定了,就可以開始進行工作分工了
第五章-系統延伸
超長時間場(以真實時間計算時間...)
特多人數, 30人up
多占卜/獵人/靈能/etc...超複雜化
背德,戀人,狼占,狸貓,etc...等新職業加入
1.Notion==================================================================
系統=======================================================
將帳戶申請與村民登錄各自獨立
玩家退出村莊(而不是被KICK)/更改名稱頭像的功能
帳號名稱應該為單純英數,村民名稱也應該有所限制
對話的回應功能?悄悄話?
紀錄檔匯出&刪除而不是留在資料庫中(xml+xsl or htm+css
or mht/chm or php+css+csv/zip)
測試專用場,身代必為村人,人人有職位,不紀錄結果
加強的回合狀態顯示(防止漏投)
內部全部使用UTC Time
扮演模式?(玩家頭像&暱稱全部用系統內部設定)
聯合Server表(要有版本,標頭資訊等)
對話制防止對話灌水/對話句數紀錄
玩家人數/角色組合與勝負的關係二維圖
簡易新手指南
對話使用ajax與壓縮技術
程式樣板化(文字/版面分離)
依據玩家的銀幕寬度,使用不同的版面
發言的文字顏色分離
替身名字的多樣化, 為特定acc_id而非uname或其他
玩家的預存發言,自訂死亡訊息等(取代"殘破的身體被發現")
網頁複製文字/COPY畫面....統統不可以 (用照相機我服你...)
專家模式(有效參與場次,KICK次數有限玩家限制);防止只開專家模式
音效: 開始遊戲/重新投票/日夜切換/未投警告
職業選項script化/或是變動容易
登入/村莊/圖片 可分別使用不同網頁空間
FTP上傳圖片?
新開村為了方便KICK,要顯示帳號
玩家紀錄
參加場數,完成場數,全參與場數(有留在幽靈間到結束或活到最後)
參加密度,扮演角色次數/獲勝次數
(玩家個人紀錄的公開程度, 應該讓玩家可以自己設定)
不良玩家紀錄
被KICK率(因為會有自行離場, 所以可以計算被KICK率)
在沒有重新投票的狀況下自殺
洗版,多重參賽,重投沒投,作弊嫌疑(一場一次,由玩家於結束後投票)
各種數量限制
同時玩家數目,募集中場次限制,新開募集最小時間差,遊戲中場次限制
所有場次總限制(含剛結束?),玩家重場限制,發言密度限制
專家場比例限制
室長功能?
強制KICK?,開場後修改規則?,廢場?
系統紀錄
每一場的開始跟結束時間,活動密度
規則與選項=================================================
開場GAME START投票Timeout
1A.不Timeout 1B.一段時間自動Timeout 1C.不講話一段時間自動Timeout
2A.可玩家自行取消 2B不可玩家自行取消
預設1C,2A, 不可設定
有玩家被KICK/自行離場 之後?
A.全部重投 B.不重投使用Timeout機制
夜間占卜不占的處理:
A.占卜死,遊戲繼續 B.系統隨便選 C.不占卜,遊戲繼續
夜間獵人不保護的處理:
A.獵人死,遊戲繼續 B.系統隨便選 C.不保護,遊戲繼續
夜間狼部份不投:
A.死狼,重投 B.死狼,不重頭 C.不死狼,不重投
日間玩家不投票的處理
A.死人,重投 B.死人,不重投(除非同票) C.不死人,不重投(當廢票,除非同票)
D.如果不投不影響結果則不死人不重投,若有影響則...?
同一晚占卜占狐&狼咬占卜之處理
A.兩個都死 B.死占卜不死狐狸
時間制/對話制/混合制
時間制:指定日間長度跟夜間長度(分鐘), 時間到投票時間倒數開始
對話制:限制一個日間或是一個夜間可以說幾句話, 歸零投票開始
混合制:上述兩種同時存在
投票時間可指定?
替身的職業例外?或是遊戲直接從早上開始?
職業希望制,替身君制度,公開票數
16人決定者,16人權利者,20人埋毒者
幽靈觀看角色禁止
更高/低的最大人數限制, 開場最少人數限制
2.資料結構================================================================
統一的標頭 ji = jinro的簡稱
之後分為三類:
data = 儲存的各類資料
run = 執行期的動態資料
log = 各種統計用資料紀錄
DB TABLE ji_data_account========================================
帳號資料,紀錄玩家帳號密碼狀態跟被KICK紀錄等
acc_id UNSIGNED MEDIUMINT AUTO_INCREMENT=11 NOTNULL
流水編號,從11開始,1保留給替身,2~10保留給系統
acc_name VARCHAR(12) NOTNULL
帳號名稱(不是村民名稱)
acc_profile TINYTEXT NOTNULL DEF=""
玩家自介(或簽名檔)
acc_password VARCHAR(36) NOTNULL
MD5編碼後的密碼
acc_authority SET('player','system','admin')
使用者權限/身份
acc_email
玩家的e-mail(需要認證?或者不要也行?)
acc_createdate DATE NOTNULL
創帳號的日期
acc_lastplaydate DATE NOTNULL
最後上線日期(登錄村人時間)
acc_icon_no TINYBLOB NOTNULL
最後n次使用的icon_no,以"\n"分隔
acc_player_name TINYTEXT NOTNULL
最後n次使用的player_name,以"\n"分隔
acc_textcolor TINYBLOB NOTNULL
最後n次設定的textcolor
acc_owndiedsay VARCHAR(24) NULL
自訂死亡訊息(不是遺言)
al_play_join UNSIGNED SMALLINT NOTNULL
參與的場數(登入村人開始)
al_play_useful UNSIGNED SMALLINT NOTNULL
有效參與的場數(也就是沒有違規死亡)
若有效參與則必有參與(兩項都要+1)
al_play_full UNSIGNED SMALLINT NOTNULL
全參與的場數(一直待在村子內直到遊戲完全結束(包含留在幽靈間)
同前,若全參與必有效參與(三項都要+1)
as_play SET('percent','full')
允許其他玩家看到上面三項統計的(百分比/數字)
al_role_join TINYBLOB NOTNULL
參與各職業的有效場數(陣列,以","分隔)
al_role_win TINYBLOB NOTNULL
參與各職業的獲勝場數(陣列,以","分隔)
as_role SET('none','side','percent','full')
允許其他玩家看到統計的(禁止/各側勝率/單職業勝率/數值)
al_talk UNSIGNED INT NOTNULL
對話的總句數
al_abuse UNSIGNED SMALLINT NOTNULL
灌水被禁言的次數
說話密度分為兩級,一級是警告但是還可以說話(對話密集),一級是禁止,對話將不
被送出(灌水)
只有灌水才被紀錄
al_kicked UNSIGNED SMALLINT NOTNULL
被KICK次數
al_suicide UNSIGNED SMALLINT NOTNULL
自殺次數(於每日第一輪吊人投票中不投票而死)
PRIMARY acc_id
UNIQUE acc_name
INDEX acc_authority
INDEX acc_lastplaydate
所有al_紀錄,都是從ji_log_player中整理寫入的
不定時重新整理一次
因為ji_log_player會清除舊紀錄, 所以這數字也會動...
DB TABLE ji_data_icon===========================================
頭像
icon_no UNSIGNED SMALLINT AUTO_INCREMENT=1 NOTNULL
頭像編號,從1開始
icon_name VARCHAR(10) NOTNULL
頭像名稱
icon_link TINYBLOB NOTNULL
連結(絕對位置)
icon_width UNSIGNED TINYINT NOTNULL
icon_height UNSIGNED TINYINT NOTNULL
頭像的寬高
acc_id=ji_data_account.acc_id
上傳者的acc_id, 上傳者&系統管理員可以更新/刪除頭像
icon_public BOOL NOTNULL
TRUE=公用ICON, FALSE=該acc_id專用ICON
註:使用伺服器方提供空間的頭像只能icon_public=true
使用自己的個人空間可以選擇允不允許公用
DB TABLE ji_data_room===========================================
村莊資料以及可選擇的規則
room_no UNSIGNED SMALLINT AUTO_INCREMENT=1 NOTNULL
村莊編號,從1開始
room_name VARCHAR(12) NOTNULL
村莊名稱
room_comment TINYTEXT NOTNULL DEF=""
村莊說明(最多40字左右)
room_option_game SET NOTNULL DEF=0
room_option_rule SET NOTNULL DEF=0
option_game為遊戲進行中的所用的選項
option_rule則是創造村子/開始遊戲所用的選項
room_timeday UNSIGNED TINYINT NOTNULL DEF=0
啟用日間時間制,單位分鐘
room_timenight UNSIGNED TINYINT NOTNULL DEF=0
啟用夜間時間制,單位分鐘
room_talkday UNSIGNED SMALLINT NOTNULL DEF=0
啟用日間對話制,單位句數
room_talknight UNSIGNED SMALLINT NOTNULL DEF=0
啟用夜間對話制,單位句數
四項可混用,但注意不可time & talk兩項都是0
room_silienttime UNSIGNED TINYINT NOTNULL DEF=0
啟用若多久沒人說話就進入投票,單位秒
有offset=$room_silienttime_offset(有底線值,要往上加)
room_clamoroustime UNSIGNED TINYINT NOTNULL DEF=0
玩家兩句對話之間所允許的安全時間間隔
這並不是灌水防禦用的,防灌水另有一個更小的數字
這個數值不能小於內定灌水限制時間
room_maxplayer UNSIGNED TINYINT NOTNULL DEF=1
最高開場人數限制
room_minplayer UNSIGNED TINYINT NOTNULL DEF=1
最低開場人數限制
room_votetime UNSIGNED TINYINT NOTNULL DEF=0
投票時間,單位10秒
即若room_votetime=12 => 120秒
room_day TINYINT NOTNULL DEF=0
= x<0 該場已結束,可以進去場後閒聊
= 0 招募中
= 2n-1 夜間 n 日目
= 2n 日間 n 日目
n為正整數(1,2,3,....,127)
x=結束時的room_day取負號
PRIMARY room_no
INDEX room_day
DB TABLE ji_run_room============================================
遊戲進行中的即時資料, ENGINE=MEMORY
room_no
room_name
room_comment
room_option_game
room_silienttime
room_clamoroustime
room_votetime
上列從ji_date_room照抄, 方便快取
room_isday BOOL NOTNULL
日=TRUE, 夜=FALSE
room_voteround UNSIGNED TINYINT NOTNULL
目前投票的回數,0=非投票狀態
room_timeleft TIMESTAMP NOTNULL
在啟用時間制時,預定日夜切替的time()值
當time()>timeleft即到達限制
若停用時間制,則是time()+內定最大一回合值
在投票期間,這個值則代表投票結束時間
room_talkleft UNSIGNED SMALLINT NOTNULL
在啟用對話制時,剩餘的對話句數
當talkleft=0即對話句數到達限制
若停用對話制, 則這邊的起始值=內定最大單回合對話句數
room_lastupdate TIMESTAMP NOTNULL
該村莊最後一次事件時間time()
若room_day<1且room_lastupdate+內定廢村時間>time()
將停止對話,匯出紀錄並刪除不需要的資料
room_lasttalk TIMESTAMP NOTNULL
最後一次有人說話時間time()
若time()>room_lasttalk+room_silienttime且room_silienttime>0
就跳入開始投票
村莊狀態 day timeleft/talkleft voteround 勝負
招募中 0 忽略 忽略
夜間討論 2n-1 至少其一不為0 0
夜間投票 2n-1 至少其一不為0 >0
日間討論 2n 至少其一不為0 0
日間投票 2n 至少其一不為0 >0
完結討論 -1 忽略 同day=-2
data_room部份從創造村子之後就INSERT, run_room部份則是開始遊戲才INSERT
之後主要的工作都在run_room之中, 只有日夜切替才會update data_room
DB TABLE ji_run_player==========================================
屬於該村莊的村民資料
room_no = ji_data_room.room_no
acc_id = ji_data_account.acc_id
acc_profile = ji_data_account.acc_profile
acc_password = ji_data_account.acc_password
acc_authority = ji_data_account.acc_authority
acc_owndiedsay = ji_data_account.acc_owndiedsay
icon_no = ji_data_icon.icon_no
p_session VARCHAR(32) NULL DEF=NULL
來源的session
p_linkip INT NULL
來源IP位址,以INT而非"a.b.c.d"方式紀錄
p_name VARSTAR(8) NOTNULL
村民名字
p_textcolor UNSIGNED INT NOTNULL DEF=0
對話顏色
p_role ENUM('none',......)
扮演的角色
p_live ENUM('live','dead','kickbefore','kick')
'kick'指不投票自殺,'kickbefore'則是開場前被踢出
(也可能只分TRUE/FALSE, 將kick紀錄寫在message)
p_lastword TINYTEXT NOTNULL DEF=""
遺言
p_talktime TIMESTAMP NOTNULL DEF=0
紀錄最後對話送出時間
剛加入村莊時則為加入村莊時間
於遊戲開始前若time()>p_talktime+內定Ready Timeout時間
將指定p_vote=0(即取消GAMESTART Ready狀態)
值紀錄方式如下:
最新說話時間>p_talktime+room_clamoroustime => p_talktime=time()
正常說話,更新最後說話時間
p_talktime+room_clamoroustime>=最新說話時間>=p_talktime+內定灌水限制時間
=> p_talktime=time()+room_clamoroustime-內定灌水限制時間
意即玩家將被警告,並且禁言room_clamoroustime秒,但這句話還是能發送出去
p_talktime+內定灌水限制時間>最新說話時間 => p_talktime=p_talktime
玩家將被提示灌水,這句話將不會被發送出去,且系統將紀錄灌水
p_vote UNSIGNED SMALLINT NOTNULL DEF=0
==0 ==1 >10
招募中 未投票 GAMESTART KICK目標acc_id
==0 >0
已開始 未投票 目標acc_id
ji_message也會紀錄投票,但僅供作為log輸出用
vote判定則使用ji_run_player(遊戲開始投票也用這張表)
DB TABLE ji_run_message========================================
屬於該村莊的系統事件
這個表應該隨時要有東西,若沒有東西就代表SQL重新啟動,需要進行重啟工作,包含:
清除其他run表, 清除ji_data_room並且復原AUTO_INCREMENT值
更新系統累計開機時間及相關統計,最後在ji_run_message新增一個全部都填0或是""的紀
錄
room_no = ji_room.room_no
room_day = ji_room.room_day
msg_time UNSIGNED TIME NOTNULL
msg_type UNSIGNED TINYINT NOTNULL
msg_text TINYBLOB NOTNULL
msg_id_from = ji_account.acc_id
msg_id_to = ji_account.acc_id
表格規劃中, 已知原來有用到
FOX_DEAD FOX_EAT GUARD_DO GUARD_SUCCESS LAST_WORDS MAGE_DO
MAGE_RESULT NECROMANCER_RESULT OBJECTION RE_VOTE
POISON_DEAD_day POISON_DEAD_night
VOTE_KILL VOTE_KILLED VOTE_TIMES WOLF_EAT WOLF_KILLED
DB TABLE ji_run_talk===========================================
屬於該村莊的對話紀錄
room_no = ji_date_room.room_no
room_day = ji_date_room.room_day
talk_id UNSIGNED MEDIUMINT NOTNULL
=0 = 系統事件
>0 = ji_account.acc_id
talk_type
when talk_id=0 =>
玩家加入
開始
日夜切換
遊戲結束
KICK VOTE
KICKED
KILL VOTE
KILLED
EAT VOTE
EATED
EAT FAUL
VOTE START
REVOTE
突然死亡
etc...
when talk_id>0 =>
=0 一般對話
=1 大聲對話
=2 小聲對話
talk_time
UTC Time
talk_sentence
內容
原來還用到一個spend_time, 用途不明?
這張表還很有討論空間....事關log輸出效率
DB TABLE ji_log_room============================================
紀錄閱覽/統計用
room_no = ji_date_room.room_no
room_name = ji_date_room.room_name
room_comment = ji_date_room.room_comment
room_players UNSIGNED TINYINT NOTNULL
開場時的玩家人數
room_suicide UNSIGNED TINYINT NOTNULL
開場後死於自殺的玩家數字
(這邊的自殺數是總數非有效數)
room_option BLOB
所有使用的選項丟在一個option裡面,以","分隔
包含時間制度的設定,例:talkday:100
room_endday UNSIGNED TINYINT NOTNULL
最後結束的時間,0=未開始直接廢場
room_victory ENUM NOTNULL
('cancel','notend','draw','human','wolf','fox1','fox2')
room_timestart TIMESTAMP
遊戲開始的時間
room_timeend TIMESTAMP
遊戲結束的時間
DB TABLE ji_log_player==========================================
紀錄閱覽/統計用
room_no = ji_date_room.room_no
acc_id = ji_data_account.acc_id
pl_time TIMESTAMP
紀錄產生的時間
pl_fulljoin BOOL
有全程參與(一直待著包含幽靈間跟賽後)
pl_endtype ENUM('kicked','suicide','play_useful','role_win')
一開始先加入遊戲但有可能會被踢出(kicked),或是正式開始但自殺(suicide)
如果上述兩種都沒有,那就是勝利('role_win')或是成功參與('play_useful')
對應al_play_*相關的表格:
join useful full
kicked 1 0 0
suicide 1 0 0
play_useful 1 1 pl_fulljoin
role_win 1 1 pl_fulljoin
pl_role ENUM('none',......)
玩家扮演的角色,'none'=尚未分配到角色
pl_talk UNSIGNED SMALLINT NOTNULL
玩家於該場總對話句數
pl_abuse UNSIGNED TINYINT NOTNULL
玩家於該場灌水的次數
PRIMARY room_no,acc_id
INDEX pl_time
INDEX acc_id
INDEX pl_endtype
INDEX pl_fulljoin
TABLE ji_log_system============================================
系統紀錄
sl_type ENUM
紀錄的項目
= 伺服器創造時間(即建TABLE的時間)
= 最近一次開機時間
= 累計總服務時間(SUM(room_timeend-room_timestart) IN ji_log_room)
= 最後一次更新log_play & log_state的時間
sl_date ???
紀錄的值
DB TABLE ji_log_win===========================================
玩家人數/角色組合與勝負的關係二維圖
wl_players
玩家人數
wl_option
選項設定
wl_win
勝負
3.網頁結構================================================================
首頁(基於DIV/TABLE結構)
標題
----+------------
MENU|子頁面
|
|
|
|
|
----+------------
Footer
子頁面包含:
首頁: 系統訊息/公告/村子列表
聯合列表: 聯合伺服器表/聯合村子列表
系統特點: 系統簡介, 概念
新手入門: 新手教學文
遊戲規則: 完整規則書
紀錄閱覽: 閱讀已匯出的舊紀錄
創建帳號: 建立新的玩家帳戶
創建村子: 建立一個新的村子
版本紀錄: 過去的更新紀錄
留言板...?
遊戲PLAY FRAME配置(預想):
即時|廣告
狀態|對話輸入/登入
----+
村投|活人對話
人票|
狀選|- - - - - -
態單|死人/路人對話
--
渡良瀨 準
連連看: 北條ㄇㄥˊ 男
瑞穗 女
貂蟬
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.180.163
推
02/05 06:27, , 1F
02/05 06:27, 1F
→
02/05 06:28, , 2F
02/05 06:28, 2F
→
02/05 06:29, , 3F
02/05 06:29, 3F
→
02/05 06:31, , 4F
02/05 06:31, 4F
本來就可以不是嗎? 嗎?
推
02/05 09:17, , 5F
02/05 09:17, 5F
拿出來分享吧...有不少人都寫一半了XD
→
02/05 09:22, , 6F
02/05 09:22, 6F
所以對話存取一定要用ajax之類的更新機制
→
02/05 11:16, , 7F
02/05 11:16, 7F
推
02/05 11:17, , 8F
02/05 11:17, 8F
→
02/05 11:17, , 9F
02/05 11:17, 9F
→
02/05 11:18, , 10F
02/05 11:18, 10F
→
02/05 11:18, , 11F
02/05 11:18, 11F
→
02/05 11:19, , 12F
02/05 11:19, 12F
→
02/05 11:19, , 13F
02/05 11:19, 13F
推
02/05 11:23, , 14F
02/05 11:23, 14F
pm功能可以弄在長時間場, 保證一團混亂XD
推
02/05 11:31, , 15F
02/05 11:31, 15F
推
02/05 11:44, , 16F
02/05 11:44, 16F
推
02/05 12:47, , 17F
02/05 12:47, 17F
沒有意義....
推
02/05 12:50, , 18F
02/05 12:50, 18F
推
02/05 12:59, , 19F
02/05 12:59, 19F
→
02/05 12:59, , 20F
02/05 12:59, 20F
→
02/05 13:00, , 21F
02/05 13:00, 21F
推
02/05 14:07, , 22F
02/05 14:07, 22F
→
02/05 14:07, , 23F
02/05 14:07, 23F
→
02/05 14:07, , 24F
02/05 14:07, 24F
→
02/05 14:07, , 25F
02/05 14:07, 25F
→
02/05 14:07, , 26F
02/05 14:07, 26F
推
02/05 14:14, , 27F
02/05 14:14, 27F
→
02/05 14:15, , 28F
02/05 14:15, 28F
推
02/05 16:20, , 29F
02/05 16:20, 29F
推
02/05 16:33, , 30F
02/05 16:33, 30F
→
02/05 16:36, , 31F
02/05 16:36, 31F
推
02/05 16:38, , 32F
02/05 16:38, 32F
推
02/05 17:54, , 33F
02/05 17:54, 33F
→
02/05 17:56, , 34F
02/05 17:56, 34F
推
02/05 18:02, , 35F
02/05 18:02, 35F
→
02/05 18:12, , 36F
02/05 18:12, 36F
推
02/05 18:23, , 37F
02/05 18:23, 37F
推
02/05 18:25, , 38F
02/05 18:25, 38F
→
02/05 18:27, , 39F
02/05 18:27, 39F
推
02/05 18:29, , 40F
02/05 18:29, 40F
→
02/05 18:30, , 41F
02/05 18:30, 41F
推
02/05 19:03, , 42F
02/05 19:03, 42F
推
02/05 19:46, , 43F
02/05 19:46, 43F
→
02/05 19:46, , 44F
02/05 19:46, 44F
→
02/05 19:47, , 45F
02/05 19:47, 45F
→
02/05 19:48, , 46F
02/05 19:48, 46F
只會導致多頭馬車, 光是只有我跟企鵝兩個版本就亂七八糟了...
推
02/05 20:27, , 47F
02/05 20:27, 47F
→
02/05 20:28, , 48F
02/05 20:28, 48F
→
02/05 20:30, , 49F
02/05 20:30, 49F
→
02/05 20:30, , 50F
02/05 20:30, 50F
→
02/05 20:31, , 51F
02/05 20:31, 51F
推
02/05 21:33, , 52F
02/05 21:33, 52F
推
02/05 21:41, , 53F
02/05 21:41, 53F
推
02/05 21:45, , 54F
02/05 21:45, 54F
推
02/06 10:54, , 55F
02/06 10:54, 55F
推
02/06 10:59, , 56F
02/06 10:59, 56F
→
02/06 11:01, , 57F
02/06 11:01, 57F
→
02/06 11:04, , 58F
02/06 11:04, 58F
→
02/06 11:06, , 59F
02/06 11:06, 59F
推
02/07 13:21, , 60F
02/07 13:21, 60F
→
02/07 13:21, , 61F
02/07 13:21, 61F
→
02/07 15:29, , 62F
02/07 15:29, 62F
推
02/08 21:00, , 63F
02/08 21:00, 63F
→
02/09 01:53, , 64F
02/09 01:53, 64F
推
02/10 16:58, , 65F
02/10 16:58, 65F
→
02/10 16:58, , 66F
02/10 16:58, 66F
推
02/11 22:04, , 67F
02/11 22:04, 67F
推
02/12 03:14, , 68F
02/12 03:14, 68F
→
02/12 03:15, , 69F
02/12 03:15, 69F
→
02/12 03:16, , 70F
02/12 03:16, 70F
※ 編輯: SmallBeeWayn 來自: 122.116.180.163 (02/14 02:32)
討論串 (同標題文章)
Expansion07 近期熱門文章
PTT遊戲區 即時熱門文章