基本知識

JASS語言的基本函數和常數都是直接調用遊戲的函數,他們被存放在war3patch.mpq內的Scripts\common.j中,另外還有一些擴充函數放在war3patch.mpq內的Scripts\blizzard.j中。war3patch.mpq內的Scripts\common.ai則包含了用於設計AI的內部函數和擴展函數,雖然AI也是用JASS碼編成,但本文不探討關於AI的設計,有興趣者請自行研究。

地圖中的觸發以及物件的擺設情形等,都會被編譯成JASS並儲存在war3map.j檔案中。讀者可以到WE中的 File => Export Script 將它匯出。

與GUI觸發不同,JASS有以下特性:

  1. JASS語言以列為基本單位。每一列的文字必須有完整的意義,不能把一列的內容分成二列寫;也不可把二列的敘述寫成同一列。

  2. JASS語言區分大小寫,該大寫就要大寫;該小寫就要小寫。

  3. 寫在//後面,直到該列結束的文字都是註解內容,這也是JASS唯一的注釋語法。後面的例子會多處用到這個注釋符號,這個符號和後面的注釋只是用於解釋程式碼的功能,並不會被執行到 。

  4. 在JASS中,空格的使用限制很寬鬆,除了某些必要的地方一定要有至少一個的空格以外,其它的地方都是可空可不空。此外,要空幾格都無所謂,電腦不會因為空了很多格就報錯。因此,使用者應多多利用空格作縮排,以使程式更易讀。

  5. 和數學一樣,( )內的程式碼優先被執行。不過請注意,JASS中只有小括號( )有此用途;中括號[ ]用於表示陣列變數的索引值,;大括號{ }完全沒有用。

使用JASS

要使用JASS,有以下三種選擇:

  1. 可在觸發編輯器中的Edit => Convert To Custom Text將觸發轉成文字型態。

  2. 在觸發編輯器下面選Actions => Custom Script也可插入單列JASS敘述。

  3. 此外,如果要定義所有觸發都能呼叫的函數,可以寫在這裡:
    自定函數

錯誤處理

一般來說,製圖者在寫JASS的時候通常會遇到以下三種錯誤:

  1. 語法錯誤:少寫一個字母,少空空白,或者把大寫寫成小寫等,都是寫JASS常犯的錯誤。一般來說,如果語法有問題,在存檔時電腦會顯示編譯錯誤的訊息, 它會指出哪一列有問題,依它的指示修正即可。不過當電腦指出某列有誤時,也可能是前面的幾列出了問題(範圍大概約1~5列),所以如果你怎麼檢查都看不出某列到底錯在哪裡的時候, 請檢查前面的程式碼。此外,某些錯誤會導致存檔時WE當掉,導致先前的辛苦付諸流水,所以請隨時存檔並且盡量小心。

  2. 執行錯誤:一般會發生這種問題是指定的變數沒有資料,當電腦找不到資料時,由於無法繼續執行,因此會無條件跳出目前的函數,如果該函數是要傳回值的函數,它將不會傳回值(也是無資料),因而可能導致呼叫它的函數也跳出。此外如除數為0也會造成類似的結果。

  3. 無窮迴圈:一般無窮迴圈的形成都是由於人為疏失(例如忘了寫exitwhen,或是觸發的動作引發同一個觸發,而造成無限循環等)。 一般來說,無限循環的迴圈會讓魔獸突然跳出,而且不顯示任何錯誤訊息;不過如果在其中加入等待函數,還是能有一些實際的用途,它能夠每隔一段時間進行一些特定的動作,一直持續到遊戲結束。

想一睹JASS的面貌,讀者可瀏覽JASS語法範例

 

回到JASS入門教學首頁 前進下一章節 - 資料 >
綜合教學/jass入門教學/1.基本知識.txt · 上一次變更: 2007年11月02日 6:49 pm 來自 wasabi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0