一個地圖變數,會看到「x,y」的變數內容
其中含有兩個未知數,當x或y改變時,地圖位置也不同
因此地圖是個2維陣列
要如何存出某個人的地圖位置
最簡單的方法是利用位置類型的檢查來儲存
或是使用動作-新增機關/設定任務變數-地圖變數
而存出來的地圖變數就可以用來做為之後放人物/道具/物品的位置
地圖變數的內容是「x,y」
以文字顯示出%{map}%得到的結果會是一組x,y
要怎麼將地圖變數拆成獨立的x跟y?
可以利用「動作-設定任務變數-地圖位置」來完成
如圖所示:
設想存取的位置為locl
設定地圖變數在locl的「向西(x)/北(y)100格」
並將下方的「只計算可行距離」部分取消勾選,並儲存餘下格數為x和y
則會無視中間的所有方塊,直到邊界才停止
而剩下的部分會存成另一個變數
倒推:100-[超出部分]=x值
便可得出獨立的x跟y了
參考檔案
比較省容量的方
法就是首先設定兩個變數:pix.w & pix.h ;分別代表像素的寬度與高度
假如是70x60的地圖就存pix.w=69,pix.h=59。(因為第一格是0,0)
分別設定地圖變數在locl「向東pix.w格」與「向南pix.h格」,並將下方的「只計算可行距離」部分取消勾選,並儲存餘下格數為x和y
後面就不需運算了,因為x,y就是座標
剛才我們提到,地圖變數的內容是x,y
如果我們有x跟y兩個數,如何將他們轉換成地圖位置?
最簡單的方法就是用「動作-設定任務變數-字串」將x,y輸入至字串內容(
如果用變數可以是「%{x}%,%{y}%」,但輸入時不用在%{x}%,%{y}%外加上括號)
在需要使用該地圖位置的地方選用字串變數強制轉成地圖位置
因為內容一樣,所以可以讀取到目標位置
但是字串和地圖的性質不同,所以在某些特殊情況還需要設一個地圖變數,內容為字串變數
目前光暈戰記以知最大的地圖(不含官方),為60x70
有些任務所需的地圖量遠超過這個範圍(俠盜獵車手、龍之旅....)
因此就有了無限地圖的方法出現
簡單來說,無限地圖就是重複使用原先的空白地圖
並將原本地圖的x,y變成x,y,z
z是用來儲存分區的,不同分區內的物件不同
再透過移動人物位置及過場
來呈現出不同地圖的感覺
簡單的方法可以參照這裡
而檢查人物所在位置時就必須多檢查一個變數z
才能確保是在指定位置觸發劇情
由於無限地圖需要大量設置地圖物件
且地圖物件有一些特殊限制(沒有山丘/窪地方塊、水跟岩漿需要用到多項動作組合
因此需要大容量才能作出無限地圖
請300/500容量者注意
詳情請見https://sites.google.com/site/twftechnique/map/infinity