最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

心靈終結(jié)3.3.6地圖編輯器萌新教程第22篇:全局變量

2023-04-23 21:30 作者:不會(huì)游泳的企鵝24  | 我要投稿

????前兩篇中我們講了局部變量的原理與應(yīng)用。與“局部變量”相對(duì)應(yīng)的是“全局變量”。我們?cè)趧傞_始介紹局部變量時(shí)就說(shuō)過(guò):“局部”的含義是:只能在一張地圖中使用。在地圖A中建立的局部變量,不能在地圖B中使用。而“全局變量”顧名思義,是可以被所有地圖共同使用的變量。當(dāng)然,它的取值和“局部變量”相同,也是只能取0和1,取0時(shí)稱這個(gè)全局變量處于“被清除”的狀態(tài),取1時(shí)稱這個(gè)全局變量處于“被設(shè)置”的狀態(tài)。


一、如何創(chuàng)建全局變量

????全局變量的創(chuàng)建和局部變量不同。在地編的“編輯”欄中只有“局部變量”沒(méi)有“全局變量”,這其實(shí)也很好理解:既然全局變量是所有地圖都可以共用的,那么它就不可能是在某一張地圖內(nèi)創(chuàng)建的。創(chuàng)建全局變量需要修改根目錄中的rulesmo.ini,在最后可以看到[VariableNames]小節(jié),這就是創(chuàng)建全局變量的地方。官方已經(jīng)使用了0-13這14個(gè)全局變量,我們從“14=xxx”開始創(chuàng)建。比如我在此創(chuàng)建了“14=Guard”和“15=test”這兩個(gè)全局變量。然后保存文件。

????順帶一提,這樣創(chuàng)建出來(lái)的全局變量初始值為0,我們并沒(méi)有辦法像創(chuàng)建局部變量一樣把它的初始值設(shè)置成1。不過(guò)這一點(diǎn)不會(huì)有任何影響。

二、全局變量的基本原理

????首先,全局變量能不能像局部變量那樣,只用在一張地圖中呢?可以,也不建議這樣。能用局部變量解決的問(wèn)題,就不要那么麻煩地使用全局變量了。之后我們舉的也都是在不同地圖中使用全局變量的例子。

????首先我們新建兩張地圖,分別命名為test1.map和test2.map,給兩張地圖都新建關(guān)卡入口,并且把它們連起來(lái),也就是test1這一關(guān)任務(wù)完成后可以直接進(jìn)入test2。如果你不知道怎么新建關(guān)卡入口以及怎么進(jìn)行關(guān)卡之間的連接,可以去看下面這篇專欄:

????然后,我們?cè)趖est1.map中新建兩個(gè)觸發(fā)。觸發(fā)1的條件為“流逝10秒”,結(jié)果選“28:設(shè)置全局變量”。如果你之前已經(jīng)正確地創(chuàng)建了局部變量并保存文件,那么你就可以看到參數(shù)值的選項(xiàng)中有“15-test1”,選擇即可。如果沒(méi)看到,可以把地編關(guān)了再打開。觸發(fā)2條件“流逝20秒”,結(jié)果“勝利者是玩家所屬方”。

????然后,在test2.map中新建一個(gè)觸發(fā):條件1為“27:全局變量被設(shè)置”,參數(shù)值選“15-test”,條件2為“流逝時(shí)間10秒”,結(jié)果為“文本觸發(fā)事件”。

????最后我們進(jìn)入test1游戲中,20秒后任務(wù)完成,通過(guò)評(píng)分屏界面進(jìn)入test2,經(jīng)過(guò)10秒就可以看到觸發(fā)的文本,說(shuō)明test這一全局變量已經(jīng)被成功設(shè)置。

三、全局變量在心靈終結(jié)中存在的問(wèn)題

????以上我們通過(guò)示例說(shuō)明了全局變量的工作原理,其實(shí)和局部變量相同,都是用“設(shè)置/清除全局變量”這兩個(gè)觸發(fā)結(jié)果和“全局變量被設(shè)置/被清除”這兩個(gè)觸發(fā)條件來(lái)對(duì)觸發(fā)事件進(jìn)行控制,只不過(guò)“設(shè)置全局變量”和“全局變量被設(shè)置”這兩個(gè)觸發(fā)不在同一張地圖中。下面我們?cè)龠M(jìn)行一些試驗(yàn):以下試驗(yàn)中,“觸發(fā)文本”說(shuō)明全局變量為1,“不觸發(fā)文本”說(shuō)明全局變量為0.

1、在選關(guān)界面直接進(jìn)入test2,10秒后不觸發(fā)文本。

2、進(jìn)入test1,經(jīng)過(guò)15秒(此時(shí)全局變量已經(jīng)被建立,但是還沒(méi)有任務(wù)完成),退出,從選關(guān)界面進(jìn)入test2,10秒后不觸發(fā)文本。

3、進(jìn)入test1,任務(wù)完成之后通過(guò)評(píng)分屏進(jìn)入test2,5秒后退出,再從選關(guān)界面進(jìn)入test2,10秒后不觸發(fā)文本。

4、進(jìn)入test1,任務(wù)完成后通過(guò)評(píng)分屏進(jìn)入test2,5秒后退出。然后從“載入存檔”進(jìn)入test2(每一關(guān)開始時(shí)都會(huì)有一個(gè)自動(dòng)存檔),10秒后觸發(fā)文本。

5、進(jìn)入test1,任務(wù)完成后通過(guò)評(píng)分屏進(jìn)入test2,5秒后存檔并退出。然后從“載入存檔”進(jìn)入剛才的存檔,則再過(guò)5秒后觸發(fā)文本。

6、進(jìn)入test1,任務(wù)完成后通過(guò)評(píng)分屏進(jìn)入test2,5秒后存檔為A并退出;然后從選關(guān)界面進(jìn)入test2,5秒后存檔為B并退出;然后載入存檔A,5秒后顯示文本;再載入存檔B,5秒后不顯示文本。

????通過(guò)以上的試驗(yàn),我們可以看出來(lái),全局變量在實(shí)際使用過(guò)程中可能會(huì)存在一些問(wèn)題。具體來(lái)說(shuō):比如打完了第1關(guān),通過(guò)評(píng)分屏進(jìn)入第2關(guān)(評(píng)分屏界面沒(méi)有“退出”按鍵,所以即使你不想打了也必須先點(diǎn)“繼續(xù)”進(jìn)入第2關(guān),然后再退出,不考慮任務(wù)管理器結(jié)束進(jìn)程、直接拔電源等情況),然后退出。此時(shí)會(huì)有一個(gè)第2關(guān)開頭的自動(dòng)存檔。第二天你想打第2關(guān)時(shí),有兩種方法:第一種是通過(guò)“載入存檔”讀取第2關(guān)開頭的自動(dòng)存檔,第二種是在選關(guān)界面直接進(jìn)入第2關(guān)。這兩種實(shí)際上是有區(qū)別的,如果和其他眾多可以存檔的游戲進(jìn)行比較的話,第一種就相當(dāng)于是“繼續(xù)之前的游戲”,第二種就相當(dāng)于“開始新游戲并跳過(guò)第1關(guān)”。第一種方法會(huì)保留之前的全局變量信息,第二種方法則會(huì)將所有全局變量設(shè)定為初始值,也就是0。這就是為什么在上面的試驗(yàn)中,“載入存檔”可以顯示文本,而“直接選關(guān)”就不可以。另外,上面的試驗(yàn)6也表明:不同的存檔之間全局變量信息是互不影響的。

????這也解釋了為什么紅警2原版和尤里的復(fù)仇中經(jīng)常使用全局變量而心靈終結(jié)中很少使用。在紅警2原版中比較著名的使用全局變量的例子是:在盟軍第3關(guān)“為長(zhǎng)官歡呼”中,如果你摧毀了一些地標(biāo)建筑,那么在盟軍第6關(guān)這些建筑就不會(huì)再出現(xiàn)(當(dāng)然,前提是第6關(guān)和第3關(guān)是同一個(gè)存檔)。在尤里的復(fù)仇任務(wù)包“林德拉克計(jì)劃”中,作者使用了全局變量來(lái)設(shè)計(jì)支線任務(wù)。這是因?yàn)?strong>原版和尤里的復(fù)仇中沒(méi)有“選關(guān)”界面,而評(píng)分屏點(diǎn)“繼續(xù)”、載入存檔、任務(wù)失敗后“重新開始本關(guān)”都算是“延續(xù)之前的存檔”,所以不會(huì)出現(xiàn)上面說(shuō)的第二種情況。而心靈終結(jié)有選關(guān)界面,所以使用局部變量可能達(dá)不到預(yù)期的目的。

四、全局變量應(yīng)用舉例

????下面我舉一個(gè)我自己制作任務(wù)過(guò)程中使用全局變量的例子。在《守護(hù)》第12關(guān)結(jié)束之后,和官方戰(zhàn)役類似,會(huì)進(jìn)入一個(gè)“結(jié)局”。如果玩家在第12關(guān)第1階段正常摧毀了時(shí)間機(jī)器,那么就會(huì)進(jìn)入“正常結(jié)局”;如果玩家在第12關(guān)占領(lǐng)并保護(hù)了時(shí)間機(jī)器,就會(huì)進(jìn)入“隱藏結(jié)局”。首先要指明的是:“結(jié)局”并沒(méi)有出現(xiàn)在選關(guān)界面,也就是說(shuō)BattleClient.ini中沒(méi)有任何關(guān)于這一張地圖的信息,但是在missionmo.ini和mapselmo.ini中仍然需要像雜談3中提到的那樣寫,這樣做的結(jié)果是:第12關(guān)任務(wù)完成之后可以進(jìn)入結(jié)局,但是不能直接從選關(guān)界面進(jìn)入結(jié)局。這樣就避免了前面說(shuō)的問(wèn)題。這里用到的全局變量就是前面展示的“14=Guard”,在第12關(guān)中將時(shí)間機(jī)器被占領(lǐng)作為條件,設(shè)置這個(gè)全局變量,在結(jié)局的開頭判斷該全局變量是否被設(shè)置,并觸發(fā)相應(yīng)的結(jié)果即可。


心靈終結(jié)3.3.6地圖編輯器萌新教程第22篇:全局變量的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
裕民县| 叙永县| 观塘区| 嘉黎县| 布拖县| 辽阳县| 鹤庆县| 伊春市| 固阳县| 涟水县| 龙胜| 灵山县| 万山特区| 罗定市| 洮南市| 贵德县| 鲁山县| 乌拉特前旗| 新化县| 唐山市| 桐梓县| 临泉县| 拉萨市| 如东县| 青岛市| 台东市| 阳谷县| 措勤县| 无锡市| 姚安县| 乃东县| 扬中市| 乡城县| 密云县| 海安县| 陈巴尔虎旗| 华池县| 包头市| 策勒县| 磐石市| 闽侯县|