2017-04-06 244 views
1

希望有人在此標籤上激活我將在此處發出有關Inform7的問題。我們目前在大學裏使用這種語言來接觸一個小組中拼接項目和任務的結構。在Inform7中鎖定一扇門在一種情況下工作,但不在另一種情況下

當前的任務是在按下按鈕時解鎖門,一回合後關閉門。我使用的代碼如下:

doorOpen is a number which varies. doorOpen is 0. [ = false] 

TuerK is a door. It is south of Flur006R and north of R028a. It is locked. 
Tbutton_flur is in Flur006R. Tbutton_flur can be pushed. 
Instead of pushing Tbutton_flur: 
    now TuerK is unlocked; 
    say "Die Tür öffnet sich"; 
    now doorOpen is 2; 

Every turn when doorOpen is 1: 
    now doorOpen is 0; 
    now TuerK is locked; 
    say "Door closes!". 

Every turn when doorOpen is 2: 
    decrement doorOpen. 

Tbutton_raum is in R028a. Tbutton_raum can be pushed. 
Instead of pushing Tbutton_raum: 
    now TuerK is unlocked; 
    say "Door opens!"; 
    now doorOpen is 2; 

我在哪裏使用doorOpen作爲屬性檢查門是否開着與否。現在的問題是,我可以按下按鈕,進入打開的房間,它說門正在關閉,但我可以毫無問題地離開房間,看起來它從現在開始解鎖。

另一方面,我有其他代碼:

TuerSiT是一扇門。它位於R024以南,Flur005R以北。它被鎖定。

Sicherheitsausweis解鎖TuerSiT。

Before going to R024: 
    if player is holding Sicherheitsausweis: 
     now TuerSiT is unlocked; 
     say "Der Sicherheitsausweis hat die Tür entsperrt"; 
    otherwise: 
     now TuerSiT is locked. 

其中now doorname is locked工作得很好。

我有什麼不正確的嗎?我也嘗試創建隱藏的鑰匙來解鎖,因爲那是我認爲問題所在的地方,但似乎我無法鎖定門。

任何幫助非常感謝!

回答

2

所以它似乎首先必須關上門,這是我沒有在另一扇門上測試。所以

now the door is closed; 
now the door is locked. 

工作都很好。

+0

事實上,開放性和鎖定性是獨立的屬性。我希望像你在做的那樣鎖上門實際上是鎖定它的門。 – curiousdannii

+0

是的,我知道了,但我認爲鎖定意味着首先關閉它。如果我將一個關鍵位置交給開門前的一個關鍵位置,並告訴你將其鎖定,則不會將鑰匙拉出,然後離開門,這讓我感到困惑。感謝您的補充解釋! – geisterfurz007

+0

默認情況下,我不認爲包含建模級別 - IIRC鎖定只控制您是否允許打開或關閉對象。您可以查看標準規則以查看究竟發生了什麼。 – curiousdannii

相關問題