看板 mud_sanc 關於我們 聯絡資訊
這次的問題是一個可以走不完的房間。 以下為原始碼: #include <path.h> inherit ROOM; void create() { string *long_str,*short_str,long_string; int i; long_str = ({}); short_str =({}); set("hell_level",1); ::create(); seteuid(getuid()); short_str = ({"石磨地獄", "石壓地獄", "刀鋸地獄" }); i = random(3); set("short",RED+short_str[i]+NOR); long_str =({ "  陰暗的角落中縮著幾條等著受罰的亡魂,大殿中央擺著一副\n" +"巨大的石磨,石磨上是一條正在受罰而痛苦哀鳴的亡魂。只見石\n" +"磨慢慢將他的身體一吋吋磨成肉醬,鬼卒則在一旁歡笑取樂。\n", "  只見大殿正中央挖了一口大池,鬼卒將犯魂一條接著一條丟\n" +"進大池中,接著快刀一揮,上方砸下一塊大石將一群犯魂壓成血\n" +"泥。血氣一沖,你的胃忍不住一陣翻湧。\n", "  殿上立滿無數的木樁,只見一條條的亡魂四肢被綁在不同的\n" +"木樁上,大鋸自他們的下體往頭部慢慢的鋸上,鋸斷之後再將殘\n" +"破的軀幹合上,不斷重複。\n" }); long_string = long_str[i] + "\n\t\t無論何方皆出路,非去路!\n"; set("long",long_string); reset(); } void init(){ add_action("cmd_move",({ "up","down","north","east","west","south" ,"u","d","n","e","w","s" }) ); } int cmd_move(){ object newroom, player, here; int lv; player = this_player(); here = environment(player); lv = here->query("hell_level"); if(lv < 19){ newroom = new(base_name(here)+".c"); newroom -> set("hell_level",random(20)); player -> move_player(newroom); } else { player -> move_player("/u/d/dolla/workroom.c"); } return 1; } 如此,用這個obj的action創造一個新的obj。如此循環。 但是有個大缺點!這樣一來,不就有無限多個obj??? 會不會對系統造成負擔?若有,有無刪除內部沒有玩家存在的obj的函數? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.147.252
doall:應該說...有沒有判斷該obj內部有沒有ppl的函數? 12/16 02:39