今日(JAN/27)進度
今天終於將顏色顯示method搞定了,也將目前所有class的除錯log設定完成,因此這個系統應該比以前要強固許多,不會因為其他人的不正常斷線而造成軟體崩潰。
也順便完成了可以讓輸入介面查閱歷史紀錄的command line mode。
下一步是將想了很久的timer做出來。
目前的構想是,四秒1 beat,15 beat算一個遊戲小時(round),物品、房間與生物的round trigger分成三部分輪流觸發,剛好是5 beats算一次觸發
以24 round為一日單位,30日算一個遊戲月,12月算一個遊戲年。
所以一個遊戲年為真實世界的六天。
當然timer是獨立thread,其中包含MudWorld。在它遊戲玩家的thread間,夾著一個Vector
addCommand(MudCommand command){
//鎖上,保護isProcessing與vector
synchronized(vector[current]){
if(isProcessing){addNextVector(command);return;}
vector[current].add(command);
}
}
class Vector{
...
process(){
synchronized(vector[current]){
//鎖上,保護isProcessing與vector[current]
isProcessing = true;
for(MudCommand command:vector[current]){
//processes commands
}
}
}
}
沒有留言:
張貼留言