Re: [閒聊] 灌個水, coding 一下吧!!

看板mud作者 (小太保)時間14年前 (2009/11/14 08:30), 編輯推噓7(7015)
留言22則, 9人參與, 最新討論串2/2 (看更多)
※ 引述《laechan (小太保)》之銘言: : // XX農場 : // 先不寫花、動物、裝飾、肥料、飼料、放蟲、放草等 : inherit ROOM; : mapping farms=([]), // 農田資料 : bag=([]), // 袋子資料 : warehouse=([]), // 倉庫資料 : seeds=([]); // 種子資料 : /* : seeds=(["pear": : (["name":"梨子", // 作物名稱 : "value":5150, // 購買價 : "seasons":3, // 類型(可收成幾季) : "mellow_time":40, // 成熟時間 : "mellow_again":14, // 再成熟時間 : "output":40, // 預計產量 : "unit_price":112, // 單個售價 : "grow_lines":({10,8,8,7,7}), // 發芽→小葉→大葉→開花→成熟 : ]), : ]), : */ 假設完全仿照 XX農場 將系統寫在 mud 內了,個人認為該系統 的關鍵在... 一、事件觸發(長草/長蟲/乾旱)的寫法 二、農場指令要使用 add_action() 方式或用 input_to 方式 三、在 mud 裡玩農場可獲得什麼好處 四、農地畫面如何顯示 一的部份,依照實際接觸 XX農場 的感覺,應該是呼叫一次事件 觸發函數後,就接著設定「最早何時再次觸發」。 void 事件觸發函數() { foreach(farm in 所有農地) farm->init_event(); } void init_event() { 隨機出現事件; 事件控制; // 例如出現長草事件,草最多長幾株; // 例如出現長蟲事件,蟲最多長幾條; // 例如出現乾旱事件,乾旱狀態還留著時就不再出現; 設定下次該塊農地再出現事件的時間; } 則理論上n塊農地的下次再事件時間就會互相不同。 (不過依 XX農場 寫法,顯然設定時間的部份並非寫在每塊農地 的 init_event 中,而是寫在 事件觸發函數 中) 二的部份,使用 input_to 的好處,即是玩家每按一次 enter, 即更新一次農地畫面,以及相關指令不再需要給定指令名字,玩 家只需透過輸入像是 1 2 3 或是 a b c 即可操作各種選項。 但是它的缺點就是資料會被頻繁載入、input_to 被大量使用、以 及資料的正確性,不過透過適當的寫法倒可以避免掉這些缺點, 例如加入載入時間控制、節省 input_to 以及資料的即時check等 三的部份,例如 XX農場 是得到金幣與經驗值,實際上 mud 也是 有金幣與經驗值,可行的寫法之一,就是讓玩家種田可得到玩家自 身的經驗值─也就是可做為打怪練功之外的另一種選擇。 而得到的金幣同樣也能當做玩家自身可運用的金幣,這時種田就可 當成是在遊戲內進行的投資行為(拿錢買種子→收獲後得到更多的 錢),此時「另一貨幣」就可以結合 mud 內原先使用的貨幣「外加 其它數值參數」來做為交換條件。 例如個人所經手的 mud 裡面有線上投票系統,我就可以設定,有 參與線上投票的人可以獲得「一枚」的該種貨幣,這時自然可以期 望在遊戲內熱心於種田事務的人會多多參與線上投票。 最後是農地畫面的部份,這個是各人有各人的做法,我個人曾嚐試 畫過 4x4 的農地,個人覺得共通的問題如下.. 一、如何設計各種參數於農地中的顯示樣式 二、如何寫的精巧,使農地畫面每次載入時不會造成太大負擔 三、如何設定使用者介面(add_action 式 or input_to 式) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.123.157

11/14 09:23, , 1F
純推coding技術文:)
11/14 09:23, 1F

11/14 09:54, , 2F
三是得到物品跟exp 錢的話是賣掉才有
11/14 09:54, 2F

11/14 09:55, , 3F
像小貓都有藥草的設計 要不要弄個可以種出藥草的設定
11/14 09:55, 3F

11/14 09:55, , 4F
要自用賣掉自己決定這樣
11/14 09:55, 4F

11/14 15:41, , 5F
樓上是網球版版主@@
11/14 15:41, 5F

11/14 16:20, , 6F
開版大說得很多功能,mud 重生的世界裡就有了...
11/14 16:20, 6F

11/14 17:12, , 7F
能幫重生的世界打到廣告的話也不錯啊
11/14 17:12, 7F

11/14 17:13, , 8F
我自己是有預定在自己的mud的某系統內添加這個附屬系統
11/14 17:13, 8F

11/14 17:59, , 9F
很不錯啊 可以弄成煉妖壺 or 煉丹系統
11/14 17:59, 9F

11/14 18:27, , 10F
沒,是真的農場系統,種東西的
11/14 18:27, 10F

11/16 18:56, , 11F
我比較好奇你如何寫儲存檔案...^^!
11/16 18:56, 11F

11/16 21:01, , 12F
用 save_object/restore_object, 依照 user name 區別
11/16 21:01, 12F

11/16 21:02, , 13F
如果是共同拓墾型農地, 就 save_object 房間物件資料即可
11/16 21:02, 13F

11/17 18:10, , 14F
來個傷心墳場吧
11/17 18:10, 14F

11/17 22:59, , 15F
早上埋屍體 晚上挖墳收成陪葬寶物 還會遇到吸血鬼殭屍
11/17 22:59, 15F

11/18 21:22, , 16F
針對第二點, 宣告變數寫在玩家(有心跳)身上不是比較好?
11/18 21:22, 16F

11/18 23:31, , 17F
嗯,如果是開心農場的版本的話,放入heart_beat是好方法
11/18 23:31, 17F

11/26 01:44, , 18F
請問有C++寫成的 mud引擎嘛? 感謝~
11/26 01:44, 18F

12/06 21:50, , 19F
回樓上,有整個mud都用C寫成的,而且數量很多很多,
12/06 21:50, 19F

12/06 21:50, , 20F
能否看完原始C碼,可能因人而異吧.
12/06 21:50, 20F

12/06 21:51, , 21F
像我現在的爛環境,要去看原始C碼,那是不可能的。
12/06 21:51, 21F

12/06 21:51, , 22F
(以上若有錯誤,請更正,謝謝!)
12/06 21:51, 22F
文章代碼(AID): #1A_VeIHE (mud)
文章代碼(AID): #1A_VeIHE (mud)