作者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
1F:推 justinj :...那高i那格就要改了...不然除了巫师谁也进不去... 09/24 18:11
2F:推 justinj :就天星空间那格... 09/25 22:03
3F:→ HighElf :我是用ppl->move_to(房间)的方式,应该可以吧... 09/26 03:35
4F:推 justinj :问题在於 创房26->玩家移入26->玩家移出26->26移除 09/26 07:23
5F:→ justinj :以上在一瞬间完成...想要不是这样..只有那个房间存活 09/26 07:25
6F:→ justinj :十分钟以上才有可能..反正你将有防巫师那行移除就知 09/26 07:28
7F:→ HighElf :那房间有限定名字,room->set("user",ppl->query("nam 09/26 11:34
8F:推 justinj :跟房间名字吧谁无关...if(query("time")>time())这格 09/26 11:45
9F:→ justinj :判断就over了...是我在确定已经移入了..因为有看到空 09/26 11:46
10F:→ justinj :间崩裂这句了... 09/26 11:46
11F:→ HighElf :是我大於小於打反了,已更正,谢谢debug 09/26 18:22