作者laechan (小太保)
看板mud_sanc
標題Re: [wizs] 房間創建
時間Fri Sep 24 18:08:56 2010
※ 引述《justinj (闇冥)》之銘言:
: 假如有一個玩家人在房間A,下了某個命令之後到了房間B
: 假如所有的玩家(就是users())沒有人有去過B(連有巫師去renew那個房間都不行)
: 那這個房間B是sd後所創造出來
: 還是當玩家有人走準備要走到B前先創造出來
: (如果是後者某一個房間應該就是bug...因為進不去直接被傳出來..)
房間A 一開始是沒有被載入的,某些 mud 會預載房間檔,
但聖殿是「你進入該房間」,該房間才載入,或者 wiz 去
update 或 find_object_or_load 它。
你只要記得房間不會自己被載入,一定是透過別的物件去載
入的(除非有另外寫其它機制),則誰去載入,誰就是呼叫主
體。
以你的例子,玩家跑到B是經由「下命令」的方式,這時 B
的載入,其呼叫主體就是玩家,這也是為什麼如果你的工作
室有寫錯什麼程式碼(比方多宣告一個不使用的變數),當你
下 home 時「你」會看到載入 warming message 的緣故,
因為你是載入主體,它自然把訊息傳給你。
而當你進入該房間後,其它玩家 or wiz 才進入該房間時,
因該房間已經被載入了,就不會再被載入。
另一個比較好記的就是 ppl->move(房間);
為什麼是 ppl->move 而不是 move(ppl,房間) 呢?
因為 move() 函數是寫在 ppl 物件內的,而它會判斷目標房
間是否有被載入,若無就會順便載入,所以呼叫主體是玩家
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.3.82
推 justinj :...那高i那格就要改了...不然除了巫師誰也進不去... 09/24 18:11
推 justinj :就天星空間那格... 09/25 22:03
→ HighElf :我是用ppl->move_to(房間)的方式,應該可以吧... 09/26 03:35
推 justinj :問題在於 創房26->玩家移入26->玩家移出26->26移除 09/26 07:23
→ justinj :以上在一瞬間完成...想要不是這樣..只有那個房間存活 09/26 07:25
→ justinj :十分鐘以上才有可能..反正你將有防巫師那行移除就知 09/26 07:28
→ HighElf :那房間有限定名字,room->set("user",ppl->query("nam 09/26 11:34
推 justinj :跟房間名字吧誰無關...if(query("time")>time())這格 09/26 11:45
→ justinj :判斷就over了...是我在確定已經移入了..因為有看到空 09/26 11:46
→ justinj :間崩裂這句了... 09/26 11:46
→ HighElf :是我大於小於打反了,已更正,謝謝debug 09/26 18:22