[閒聊] D3 的拍賣系統
問題:那個拍賣系統有可能在 mud 實裝嗎?
首先假設每一個物件資料,與實際資料設定是一致的,
不一致的部份亦有一個系統儲存機制(例如"精鍊值")。
那麼這個拍賣系統就分為三部份
一、拍賣物件儲存系統
二、拍賣物件張貼及下標系統
三、拍賣物件搜尋系統
而且這三部份是互相相關的。
一般來說在定義儲存格式時,會假設「拍賣系統」本身
是一個「玩家」,各位都知道在玩家的身上可以存放東
西,而在該玩家離線時這些東西可以被「儲存」,所利
用的就是這種儲存機制,把拍賣系統假設是玩家,則放
在拍賣系統「身上」的東西就可以被儲存。以 mud來說
一般是這樣子存的..
mapping auto_load=([
"路徑/檔名1#編號":(["額外儲存資料1":xx1,"額外儲存資料1":xx2,..]),
"路徑/檔名2#編號":(["額外儲存資料1":xx1,"額外儲存資料1":xx2,..]),
.
.
]);
那麼張貼時就很簡單了...
ob=present("你指定張貼的物品id",this_player());
ob->move(拍賣系統);
this_player->save();
拍賣系統->save();
一般來說張貼的語法可以這樣子設計...
auc -post 身上物品名 for 價錢
這時讓系統給該物品拍賣編號,然後設計一個儲存格
mapping auc_ob=([
"拍賣編號1":({"路徑/檔名1#編號",競標價,直購價,結束時間}),
"拍賣編號2":({"路徑/檔名2#編號",競標價,直購價,結束時間}),
.
.
]);
這樣就可以設計底下的指令..
auc -set 拍賣編號 競價價 = ooxx
auc -set 拍賣編號 直購價 = ooxx
auc -set 拍賣編號 結束時間 = 2012/xx/xx xx:xx
.
.
換言之,由拍賣編號可以找到物件編號,再由物件編
號就可找到實際被儲存的物件資料。拍賣編號也是玩
家下標時的依據。
剩下的就是搜尋系統,設計玩家可以使用哪些條件來
搜尋,一般如果是我,指令會這樣寫..
auc -search type=ring,level>99,direct>50000,direct<100000
上面的意思是說,我要找的目標是 ring 類、等級大
於 99、直購價介於 50000~100000 之間的戒指。
// 先針對後面接的那一長串, 以 , 號做 explode
foreach(tmp in explode(tmps,","))
{
// 再去偵測 > < = 的位置
if(s=strstch(tmp,">")>0)
{
// 就能分離出 type,level,direct,.. 等
tmp1 = tmp[0..s-1];
tmp2 = tmp[s+1..strlen(tmp)];
switch(tmp1)
{
case "type":
.
.
case "level":
.
.
}
}
}
這樣就能找出完全 match 的。
其它變化大同小異,我想「離線拍賣系統」理論上是做的
出來的,而越簡單的系統,其物件資料的「變動資料設計
」會越單純。
反過來說就是有精鍊或變動設計複雜的,越難寫,而且其
錯誤或 bug,會經常發生在伺服器重開、或者是上 patch
的時候,像 D3 那樣同樣一個名字的藍裝,其掉寶率設定
、屬性設定有時也會不同,這個就叫做變動資料,是必須
被拍賣系統額外儲存的。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.61.157.53
※ 編輯: laechan 來自: 210.61.157.53 (06/19 18:25)
推
06/19 18:59, , 1F
06/19 18:59, 1F
→
06/19 19:10, , 2F
06/19 19:10, 2F
→
06/19 19:10, , 3F
06/19 19:10, 3F
推
06/19 19:16, , 4F
06/19 19:16, 4F
推
06/19 20:25, , 5F
06/19 20:25, 5F
→
06/19 20:30, , 6F
06/19 20:30, 6F
推
06/19 20:39, , 7F
06/19 20:39, 7F
→
06/19 23:59, , 8F
06/19 23:59, 8F
→
06/20 00:00, , 9F
06/20 00:00, 9F
推
06/20 00:52, , 10F
06/20 00:52, 10F
推
06/20 02:07, , 11F
06/20 02:07, 11F
→
06/20 02:08, , 12F
06/20 02:08, 12F
→
06/20 02:39, , 13F
06/20 02:39, 13F
→
06/20 02:41, , 14F
06/20 02:41, 14F
→
06/20 02:42, , 15F
06/20 02:42, 15F
→
06/20 02:44, , 16F
06/20 02:44, 16F
→
06/20 02:44, , 17F
06/20 02:44, 17F
→
06/20 02:45, , 18F
06/20 02:45, 18F
→
06/20 02:46, , 19F
06/20 02:46, 19F
推
06/21 14:31, , 20F
06/21 14:31, 20F
→
06/22 05:10, , 21F
06/22 05:10, 21F
→
06/24 13:10, , 22F
06/24 13:10, 22F
mud 近期熱門文章
PTT遊戲區 即時熱門文章
65
172
19
43
19
36