當前位置:編程學習大全網 - 編程語言 - War3 We的Jass函數編寫

War3 We的Jass函數編寫

JASS(正確地說是JASS 2)是魔獸3的程序語言,用於控制遊戲和地圖的進行,也是魔獸遊戲和地圖的基礎。 地圖編輯器中擺放的單位(Unit),區域(Region) ,觸發(Trigger)……等,最終都會被翻譯成JASS語言存在地圖文件裏,在遊戲時被使用。JASS在語法結構上比較接近Basic,同時也引用了許多C的東西。如果讀者有接觸過這二種編程語言,相信壹定能很快上手!如何使用JASS?  觸發編輯器中的 Edit =>Convert To Custom Text 將觸發轉成文字型態。  在觸發編輯器下面選 Actions => Custom Script 可以插入單行JASS敘述。  此外,如果要定義所有觸發都能調用的函數  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 將它導出。  JASS語言以列為基本單位。每壹行的代碼必須有完整的意義,不能把壹行的代碼分兩行寫;也不可把兩行的代碼寫在同壹行。  JASS語言是區分大小寫的,該大寫就要大寫;該小寫就要小寫。  寫在//後面,直到該行結束的文字都是註解內容,這也是JASS唯壹的註釋語法。後面的例子會多處用到這個註釋符號,這個符號和後面的註釋只是用於解釋代碼的功能,並不會被執行到 。  在JASS中,空格的使用限制很寬松,除了某些必要的地方壹定要有至少壹個的空格以外,其它的地方都是可空可不空。此外,要空幾格都無所謂,電腦不會因為妳空了很多格就說有錯。因此,使用者應多多利用空格作縮進,以使代碼更易讀。  和數學壹樣,()內的代碼優先被執行。不過請註意,JASS中只有小括號()有用,中括號[]和大括號{}不可作為改變執行順序之用。JASS錯誤處理  語法錯誤:少寫壹個字母,少空空格,或者把大寫寫成小寫等,都是寫JASS常犯的錯誤。壹般來說,如果語法有問題,在存檔時電腦會顯示編譯錯誤的信息,並指出是哪壹行有問題,依它的指示修正即可。不過當電腦指出某行有誤時,也可能是前面的幾行出了問題(範圍大概約1~5行),所以如果妳怎麽檢查都看不出某行到底錯在哪裏的時候,檢查前面的代碼。此外,某些錯誤會導致存檔時WE當掉,導致先前的辛苦付諸流水,所以請隨時存檔並盡量小心。  執行錯誤:壹般會發生這種問題是指定的變量沒有賦值,當電腦找不到變量的值時,由於無法繼續執行,因此會無條件跳出目前的函數,如果該函數是要傳回值的函數,它將不會傳回值(也是無任何返回),因而可能導致調用它的函數也跳出。此外如除數為0也會造成類似的結果。  無限循環:壹般這種事都是人為疏忽(忘了寫exitwhen,或是觸發的動作引發同壹個觸發,而造成無限循環等),發生機會不大。不過壹旦發生可是會讓War3當掉的喔。壹定要學JASS嗎?  當然不壹定。即使是官方的戰役,其程序員也只使用了GUI來完成制作。壹般來說,單純使用GUI Trigger,就可以達到大多數的功能。但是筆者還是建議對Trigger有相當了解的人學些基本的JASS寫法,可以省下不少力氣,且能讓妳的地圖更不lag!!

  • 上一篇:量產元年!速騰聚創首批前裝激光雷達定點訂單量產交付
  • 下一篇:紅警2尤裏復仇語音
  • copyright 2024編程學習大全網