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

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

[FNF] 教你如何用lua做特殊箭頭(PE)(非專(zhuān)業(yè)教學(xué))

2023-01-15 16:53 作者:是白不是懷特  | 我要投稿

此文章根據(jù)個(gè)人經(jīng)驗(yàn)所寫(xiě),可能會(huì)部分地方不對(duì)。(第一次寫(xiě)這種超爛()

建議先了解lua基礎(chǔ)在再來(lái)看此文章。

目錄

  1. lua文件

  2. 編寫(xiě)lua

  3. 一些note的變量

  4. 一些note的funcion

?--1.lua文件--

在Psych engine文件夾中,我們的特殊箭頭的lua是要放在mods/custom_notetypes文件夾里,不然我們就不能在游戲中的charting中找到你編輯的特殊箭頭。

--編寫(xiě)lua--

那我們?cè)趺粗谱魈厥饧^呢?

我們先在custom_notetypes創(chuàng)建一個(gè)txt文件,然后把后綴改為lua。再以記事本打開(kāi)。

接著,我們就可以編寫(xiě)特殊箭頭了。

這邊我就以”按了就會(huì)扣血的箭頭“做模板例子。

先創(chuàng)建一個(gè) 名為“hurtnote.txt“的txt文件,然后把后面的”.txt“改為”.lua“,再用記事本打開(kāi)此文件。然后就可以編寫(xiě)特殊箭頭了。

--怎么讓箭頭擁有此效果?--

這就需要改箭頭的基準(zhǔn)數(shù)值了。使其按下“扣血”,而不是“加血”

我們通常會(huì)用 function?onCreate()? ,這個(gè)function的意思是在lua啟動(dòng)時(shí)觸發(fā),也就是游戲一開(kāi)始就會(huì)觸發(fā)下面的代碼塊。

onCreate() 后面的括號(hào)不要省去,不然就不會(huì)正常運(yùn)作。

接著,我們就要改箭頭的基準(zhǔn)數(shù)值了,

我們會(huì)用到getProperty(variable:String)函數(shù)

variable:變量

string:字串符

variable:string:字串符形式的變量

for i = 0, getProperty('unspawnNotes.length')-1 do

代碼的意思是:獲取譜子中所有未出現(xiàn)的箭頭。

unspawnNotes :未生成,未出現(xiàn)的箭頭

然后從中進(jìn)行,選出我們要改的特殊箭頭。

就用到noteType。

if getPropertyFromGroup('unspawnNotes', i, 'noteType') == 'hurtnote' then

代碼的意思是:如果這個(gè)箭頭的noteType是hurtnote,那么進(jìn)行執(zhí)行下一段代碼。

noType:箭頭種類(lèi)

就選出我們的特殊箭頭,那么要怎么改?

我們會(huì)用到setPropertyFromGroup(obj:String, index:Int, variable:Dynamic, value:Dynamic)函數(shù)

obj(ect):要設(shè)置的對(duì)象(字串符)

index:對(duì)象的id(整數(shù))

variable:對(duì)象的某一變量(可變的)

value:要被設(shè)置的值(可變的)

我們要讓這個(gè)箭頭按下扣血,就要用到“hitHealth"這個(gè)變量,

則我們應(yīng)該這樣寫(xiě)

setPropertyFromGroup('unspawnNotes',i,‘hitHealth',-0.0475)

代碼的意思是,將這類(lèi)箭頭按下后獲得的生命值設(shè)為-0.0475,也就是按下減少0.0475的血。

hitHealth:擊中時(shí)恢復(fù)的血量(num)

則箭頭擊中就會(huì)扣-0.0475的血量,

但是,這個(gè)箭頭是“必須擊中的”

我們還要把他改為“不用擊打的”

這就運(yùn)用到另一個(gè)變量“ignoreNote”

所以還要加上下面一條代碼:

setPropertyFromGroup('unspawnNotes',i,‘ignoreNote',true)

代碼的意思是;:把這類(lèi)箭頭改為可以忽視不按的類(lèi)型

注:這個(gè)變量用的是布爾值而不是數(shù)字

ignore:可是否忽視此箭頭(Bool)

這樣,即使不按也不會(huì)增加miss數(shù)了。

再補(bǔ)上function onCreate()的end

和for循環(huán)的end

和if條件的end

這個(gè)特殊箭頭就是這樣寫(xiě)的:

function?onCreate()

for i = 0,?getProperty('unspawnNotes.length')-1?do

if?getPropertyFromGroup('unspawnNotes', i, 'noteType') == 'hurtnote'?then

setPropertyFromGroup('unspawnNotes',i,'hitHealth',-0.0475)

setPropertyFromGroup('unspawnNotes',i,'ignoreNote',true)

end

end

end



--一些note的變量--

texture

note的皮膚材質(zhì),如果你想改note的皮膚材質(zhì)(string)

那么請(qǐng)用下面這條代碼

setPropertyFromGroup('unspawnNotes',i,'texture','你想更改的箭頭材質(zhì)名稱(chēng)')

注意,你的箭頭材質(zhì)png文件請(qǐng)放到Psych engine/mods/images里

獲取方式:

getPropertyFromGroup('unspawnNotes',i,'texture')


hitHealth

擊中的回血量(num)

setPropertyFromGroup('unspawnNotes',i,'hitHealth',你想加血的數(shù)值)

獲取方式:

getPropertyFromGroup('unspawnNotes',i,'hitHealth')

missHealth

miss箭頭的失血量(num)

setPropertyFromGroup('unspawnNotes',i,'missHealth',你想失血的數(shù)值)

獲取方式:

getPropertyFromGroup('unspawnNotes',i,'missHealth')

ignoreNote

是否可忽視(bool)此類(lèi)箭頭

填true則可以忽視,填false則不能忽視

setPropertyFromGroup('unspawnNotes',i,'ignoreNote',bool)

(懶得寫(xiě)了,就默認(rèn)上面為如何更改,下面為獲取方式)

getPropertyFromGroup('unspawnNotes',i,'ignoreNote’)

noAnimation

擊中是否不觸發(fā)動(dòng)作(bool)

填true則在擊中此箭頭不觸發(fā)相應(yīng)動(dòng)作,填false則在擊中此箭頭會(huì)觸發(fā)相應(yīng)動(dòng)作setPropertyFromGroup('unspawnNotes',i,'noAnimation',bool)

getPropertyFromGroup('unspawnNotes',i,'noAnimation')


noteType

箭頭種類(lèi)(string)

不推薦去改

getPropertyFromGroup('unspawnNotes',i,'noteType')

noteData

你箭頭的data標(biāo)簽(?)(num)

比如你判定點(diǎn)的左下上右分別對(duì)應(yīng)0,1,2,3

但是,對(duì)手的左下右上判定點(diǎn)也是0,1,2,3,

這個(gè)得用“mustPress”區(qū)分

setPropertyFromGroup('unspawnNotes',i,'noteData',num)

getPropertyFromGroup('unspawnNotes',i,'noteData')


mustPress

是否需要按下(bool)

這個(gè)和上面的ignoreNote不同

如果mustPress為false,則它屬于對(duì)手的箭頭

如果為true,則屬于玩家的箭頭。

setPropertyFromGroup('unspawnNotes',i,'mustPress',bool)

getPropertyFromGroup('unspawnNotes',i,'mustPress‘)


gfSection

是否為Gf位的箭頭(bool)

改這個(gè)干嗎(?

gfSection

上面那個(gè)就是他的獲取方式,或者說(shuō),變量。


unspawnNotes.length

譜子中所有未生成的箭頭(num)

getProperty('unspawnNotes.length')

不能改lol


multSpeed

箭頭的速度倍速(num)

setPropertyFromGroup("unspawnNotes", i, "multSpeed",?num)

getPropertyFromGroup("unspawnNotes", i, "multSpeed")


notes.length

譜子中已經(jīng)出現(xiàn)在屏幕上的箭頭(num)

getProperty('notes.length')

同樣不能改lol


strumTime

箭頭出現(xiàn)的時(shí)間(num)(毫秒)

getPropertyFromGroup('notes',?i, 'strumTime')

不可以改lol

x

箭頭的x坐標(biāo)(num)

setPropertyFromGroup('notes',?i, 'x',num)

getPropertyFromGroup('notes', i, 'x')


y


箭頭的y坐標(biāo)

setPropertyFromGroup('notes',?i,?'y',num)

getPropertyFromGroup('notes', i,?'y')


angle

箭頭的旋轉(zhuǎn)度數(shù)(num)

setPropertyFromGroup('notes',?i,?'angle',num)

getPropertyFromGroup('notes', i,?'angle')


alpha

箭頭的透明度(num)

setPropertyFromGroup('notes',?i,?'alpha',num)

getPropertyFromGroup('notes', i,?'alpha')


scale.x

箭頭的x大小比例(num)

setPropertyFromGroup('notes',?i,?'scale.x',num)

getPropertyFromGroup('notes', i,?'scale.x’)


scale.y

箭頭的y大小比例(num)

setPropertyFromGroup('notes', i, 'scale.y',num)

getPropertyFromGroup('notes', i, 'scale.y’)



--一些箭頭的function--

goodNoteHit(id, direction, noteType, isSustainNote)

在按下箭頭時(shí)觸發(fā)

id:被按下箭頭的id(num)

direction:方向(num) ?

direction == 0?left? ?

direction == 1 down

?direction == 2?up

?direction == 3 right

noteType:箭頭類(lèi)型(string)

isSustainNote:是否是長(zhǎng)鍵(bool)


opponentNoteHit(id, direction, noteType, isSustainNote)

對(duì)手按到箭頭時(shí)觸發(fā)

括號(hào)里的同上

noteMiss(id, direction, noteType, isSustainNote)

miss一個(gè)箭頭時(shí)觸發(fā)

括號(hào)里的同上


--end--

[FNF] 教你如何用lua做特殊箭頭(PE)(非專(zhuān)業(yè)教學(xué))的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
会宁县| 新巴尔虎右旗| 定日县| 分宜县| 陇南市| 广宁县| 临清市| 保山市| 西安市| 辽阳县| 奉节县| 临沂市| 乐业县| 司法| 徐闻县| 金门县| 外汇| 蓝田县| 禹州市| 三明市| 蒲江县| 伊金霍洛旗| 遵义县| 昌宁县| 淮南市| 军事| 乐清市| 红原县| 舞阳县| 镇平县| 壤塘县| 新邵县| 沽源县| 镇康县| 绍兴县| 固原市| 宜阳县| 祁阳县| 祥云县| 布尔津县| 开化县|