作者laechan (小太保)
看板mud
標題[閒聊] D3 的拍賣系統
時間Tue Jun 19 18:24:41 2012
問題:那個拍賣系統有可能在 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)
1F:推 dannielz:推 06/19 18:59
2F:→ laechan:其實最大的問題在於那個「仿玩家」的儲存系統,依 D3 的規 06/19 19:10
3F:→ laechan:模,資料庫檔案大概會大到幾十MB,不過在mud應該就還好 06/19 19:10
4F:推 loversii:有在MUD中看過 可行 06/19 19:16
5F:推 QQmother:小寶要抽15%(誤 06/19 20:25
6F:→ laechan:這個在新的 mud 做比較適合. 06/19 20:30
7F:推 loversii:5F是Gay 06/19 20:39
8F:→ kruz:拍賣是還好.重點是要有足夠的玩家群去支撐拍賣..要不然小貓兩 06/19 23:59
9F:→ kruz:三隻(或是都是機器人)是賣不出什麼名堂的.. 06/20 00:00
10F:推 lainhoter:auc horn 1 gold 06/20 00:52
11F:推 loversii:他說的是類似網拍巴 把東西放在商店類 人可以離線 06/20 02:07
12F:→ loversii:有在rw跟ww看過 06/20 02:08
13F:→ kruz:人離線不是重點啊.重點是有沒有足夠的人去打東西來賣,跟有沒 06/20 02:39
14F:→ kruz:有足夠的人去買東西.要不然撐不起來的.. 06/20 02:41
15F:→ kruz:有些東西要有夠大的玩家群才可以撐得起來.很久以前有個mud就 06/20 02:42
16F:→ kruz:有一套玩家經濟系統.玩家可以用mob的屍體去做藥水類的東西,其 06/20 02:44
17F:→ kruz:他玩家可以去買,然後打mob可以用,這樣剛好一圈.不過後來完的 06/20 02:44
18F:→ kruz:人變少以後這一圈就撐不太起來了.可能的解法大概是去"模擬"玩 06/20 02:45
19F:→ kruz:家..要不然玩家經濟沒有玩家會垮掉.. 06/20 02:46
20F:推 tawi:這個可以用機器人做吧..感覺這個圈圈用robot弄得起來 06/21 14:31
21F:→ kruz:對呀.用系統依照真實玩家數去仿虛擬玩家.. 06/22 05:10
22F:→ QQmother:6f最喜歡別人射在他臉上 06/24 13:10