看板 mud_sanc 關於我們 聯絡資訊
※ 引述《justinj (黑旋風)》之銘言: : 給norr的: : storeroom我覺得應該是放樣品的吧.... : 那程式寫法就可以這樣寫 : 到迴圈那邊開始 : if(!ob=present(str,storeroom)) return notify_fail("沒有這個物品哦!\n"); : //第i個物品的東西我沒寫進去....請自行補吧..... : //還有如果是馬房請另外寫吧... : if(ob->query("mass")*num>user_mass) return notify_fail("你買的東西重量超過你的負重哦!\n"); : for(i=0;i<num;i++) clone_object(base_name(ob))->move_to(ppl); : //接下來是金錢的計算...就不說了... : //不過我覺得錢夠不夠也要移到前面判斷.... 用 storeroom 是很多 mud 的共通寫法,它的好處就是 我今天 sell 一個東西進去時,若該物 storeroom 沒有, 則該物 ob->move(storeroom); 則 list 商店時,只需要 obs=all_inventory(storeroom), 則 foreach(ob in obs) 所列的東西「即是商店內的所有 東西」,而且要讀這些東西的資料(如價格)都不必重新去 clone 這些東西。 它也很方便做排序,比方我買光商店的第 5 件東西,買 最後一件時就是做 ob from storeroom moveto ppl,這 時 storeroom 就沒有該物品,list 時自然也不會有。 它更重要的功能是指定物品,比方 buy sword 2 指定購 買商店的第二種 sword 時,它的做法就是.. ob = present("sword 2",storeroom); 要修改跟 storeroom 有關的東西時先確定有上述概念即 可。 LAechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.141.186.229
laechan :PS storeroom 也可以當做「不會被系統清掉」的房間設 04/30 16:32
laechan : 計參考,它有設 set("pre_clean",1); 也有自訂 04/30 16:33
laechan :int clean_up() { return 0; } 這樣幾乎就不會被清掉 04/30 16:33