[wizs] base_shop.c 研究

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2012/01/08 11:11), 編輯推噓1(1020)
留言21則, 2人參與, 最新討論串1/2 (看更多)
要改之前先研究一下。 基本上每間商店都有一個 storeroom.c,每一間商店的 storeroom 都是獨立的。 商店被載入時會呼叫 create_obj,用來處理 data["obj_num"] 所 設定的商店物品資料,因此,只要儲存了 data["obj_num"],下次 就可交由 create_obj 函數做自動載入或手動的載入,例如.. system eq_shop save/restore system wp_shop save/restore 但是這裡要對 create_obj 函數做修正,加入 storeroom 是否為 原先的 storeroom 的判斷.. 新載入的 - 那就執行原先的 create_obj 函數段 舊有存在的 - 那得清空 storeroom 裡面的東西再做載入 現在的重點就是儲存檔會不會過大的問題。因此基本上我還是比較 傾向手動的儲存及回存,重點在於做回存時多做一道手續:資料的 過濾及整合,這樣就不會使資料在做回存時有遺漏,例如.. 回存前的 obj_num = xx1 : 50, xx2 : 30, xx3 : 20 做回存的 obj_num = xx1 : 40, 變少 xx3 : 40, 變多 xx4 : 60, 新資料 ↓ 經過整合 回存後的 obj_num = xx1 : 50, 採較多的 xx2 : 30, 採較多的 xx3 : 40, 採較多的 xx4 : 60, 新加入的資料 實際做法就是 restore 前先讀 data["obj_num"], 然後將其拆成 兩個 mixed 資料(以免資料消失或變更), 之後做回存, 再比對資 料, 中間可能得用一下 call_out 做一些延遲處理. 因此,新商店需要改的就是增加 save_room 及 restore_room 兩 個函數,以及將它們搬離 /d 其它都不需要動,然後更改 system 指令新增語法即可。 這個有空會試做看看,而且我也想實驗反饋系統。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.141.173.94

01/08 11:17, , 1F
norr 我想放在你目錄下的 room/ 應該是可行的
01/08 11:17, 1F

01/08 11:17, , 2F
room/ 或 special/ . 我目錄太多東西了
01/08 11:17, 2F

01/08 12:07, , 3F
嗯..是可以,可是通常新開個資料夾存會比較好吧...
01/08 12:07, 3F

01/08 12:07, , 4F
像是 storeroom/ 之類的...
01/08 12:07, 4F

01/08 12:09, , 5F
我覺得可以儲存部分可以寫在clean_up()之類..avert
01/08 12:09, 5F

01/08 12:24, , 6F
對了其實還有一件事,就是儲存檔是可以跟物件檔不同目
01/08 12:24, 6F

01/08 12:24, , 7F
錄的,所以recall處的商店或許就不需要搬目錄
01/08 12:24, 7F

01/08 12:24, , 8F
寫在 clean_up 我怕日後物件資料太大時會出問題
01/08 12:24, 8F

01/08 13:20, , 9F
我想說clean_up執行率比較不頻繁..avert
01/08 13:20, 9F

01/08 18:41, , 10F
如果它執行失敗會造成系統的reborn出問題,這部份你可
01/08 18:41, 10F

01/08 18:42, , 11F
以參考寫在 weather_d.c 的 clean_up. 以前聖殿出過
01/08 18:42, 11F

01/08 18:42, , 12F
一種error就是這麼來的(某些物件突然載入失敗,但重新
01/08 18:42, 12F

01/08 18:42, , 13F
手動update會好)
01/08 18:42, 13F

01/08 18:52, , 14F
嗯,我是指stoneroom的自動clean_up..
01/08 18:52, 14F

01/08 18:52, , 15F
自動 -> 自定
01/08 18:52, 15F

01/08 19:13, , 16F
storeroom 是 new 出來的物件這樣比較不保險
01/08 19:13, 16F

01/08 22:55, , 17F
soga..
01/08 22:55, 17F

01/09 11:03, , 18F
對了順便確定一下有此需要的商店,recall n,s, 還有哪
01/09 11:03, 18F

01/09 13:03, , 19F
我覺得目前就那兩個就差不多了吧...
01/09 13:03, 19F

01/09 13:03, , 20F
硬要算的話,可能在加上阿里達鎮跟極北烏羅村的吧..
01/09 13:03, 20F

01/09 13:43, , 21F
ok..
01/09 13:43, 21F
文章代碼(AID): #1F2GbkzI (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1F2GbkzI (mud_sanc)