目前排程拍賣運作的模式 - 聖殿英雄傳說 MUD

Table of Contents

明天改完後這東西將會進行實測,wiz 們可先瞭解一下這東西的運作。

腳本檔

腳本檔統一放在 /open/cmds/blarket/ 目錄下,檔名不能用中文、不
能有底線。

檔案內容很簡單,每一行都是

欲拍賣物品的絕對路徑+檔名(不含.c) 結標模式(-end 及 -end2 兩種)

例如

/d/auc/blarket/ob01 -end <= 價高者得
/d/auc/blarket/ob01 -end2 <= 每個競標者都有機會拿到一份(預設拍賣100份)

另外,當腳本檔內某一行為 -- 時,就代表只讀到該行就結束。


寫好腳本檔後怎麼測試

很簡單,指令如下

cd /cmds/std
call _blarket;times_check;"blarket_腳本檔名";"/cmds/std/_blarket";({})

例如腳本檔名叫 test (/open/cmds/blarket/test)

call _blarket;times_check;"blarket_test";"/cmds/std/_blarket";({})

它就會跑了。


萬一發現執行有問題怎麼強制中止?

很簡單,指令如下

update /open/cmds/times_check <= 中止 times_check 的呼叫
blarket -halt <= 中止拍賣的進行

這樣就行了。通常 update times_check 就可以停了,多執行一個
blarket -halt 則是為了清除拍賣資料。


實際讓腳本檔依預訂的時間執行要怎麼設定

很簡單,指令只有一個:

blarket -crontab

再來就依顯示內容做相對映的輸入即可,例如腳本名稱假設叫 test

> blarket -crontab
1.新增排程
2.刪除排程
3.離開(按 q 或 quit 也可)
請輸入選項: 1
請輸入欲設定的排程拍賣主題(全英文, 例如 newyear): test
請輸入預定執行時間(mm/dd hh:mm): 02/15 21:00
腳本名稱: test 預定執行時間: Thu Feb 15 21:00:45 2018
資料設定 ok.

設定好之後再執行一次 blarket -crontab 就會看到設定資料

> blarket -crontab
腳本名稱: test 預定執行時間: Thu Feb 15 21:00:45 2018
1.新增排程
2.刪除排程
3.離開(按 q 或 quit 也可)


一個腳本只能被設定為一個排程,這個意思就是,如果你想在不同
的時間拍賣相同的東西,就應該給兩個腳本(然後它們的內容可以
相同),比方一個叫 test1,一個叫 test2。


blarket -auc 新增新的用法

目前可以這樣子下指令:

blarket -auc /d/auc/blarket/ob01
blarket -auc /d/auc/blarket/ob01 x 100

它會將這東西 clone 出來後,移到你的身上,再進行拍賣。以前
則是你要先將 /d/auc/blarket/ob01 出來再去 blarket -auc 它


以上,這是磨了很多天之後才確定的做法,它已經非常簡單且單純
了,希望會用到 blarket 的 wiz 都知道怎麼使用,未來其它例行
排程的東西我也都會參照 blarket 的寫法去弄,並要求 wiz 們也
必須 follow,亦即:

1.需自寫 times_check 函數且做必要修改
2.不允許在自己寫的 times_check 函數內使用 set_times_check
須一律使用 set_times_no_save,且需盡量使用內迴做法。
3.只要遵守前兩項原則,times_check 內要怎麼寫都是彈性的。

以上我日後也將撰寫非常簡單的範例來呈現,我會寫在區域房間內
,並寫兩條 crontab,一條是讓這個房間在預訂的時間開啟某個設
定,一條是讓這個房間在預訂的時間關閉某個設定。春節會用到這
個,例如 777 賭場。


Laechan

--

All Comments