修改屬性

物品/生物/人物,在游戲中都統(tǒng)稱為prefab粘衬,下文用prefab指代這些東西
本文介紹如何使用Mod API來安全地修改游戲中的prefab的屬性荞估。

相比直接修改游戲文件,通過制作MOD的方式進行修改雖然麻煩了一點稚新,但卻是一種安全的勘伺,對用戶友好的修改方式。 掌握修改屬性的方法褂删,能夠制作出更為穩(wěn)定的復(fù)雜MOD飞醉。官方提供的修改API十分強大,你對一個prefab或component了解得越全面屯阀,能做出的修改就越多缅帘。

進行修改之前,需要了解什么是prefab和component,如果你不了解难衰,可以參考我這篇文章

用到的Mod API

  • AddPrefabPostInit
  • AddComponentPostInit

修改單個prefab的屬性

本文舉例钦无,修改長矛的攻擊力為50,wilson的血量為300盖袭。

要想完成更復(fù)雜的修改失暂,你需要去看一個prefab或component的具體代碼,了解它的工作原理苍凛,然后才能進行修改趣席。

修改單個prefab,一般使用Mod API里的AddPrefabPostInit來完成醇蝴,它會接收一個函數(shù)宣肚,函數(shù)的傳入?yún)?shù)是prefab本身。然后可以在這個prefab的范圍內(nèi)隨意進行修改悠栓。

流程

  1. 查詢要修改的prefab名
  2. 了解屬性的對應(yīng)代碼
  3. 編寫修改代碼

查詢prefab名

首先你需要查詢prefab名霉涨,也就是常說的控制臺代碼,請根據(jù)需要自行百度惭适。

長矛的prefab名為 spear
威爾遜的prefab名為 wilson

了解屬性代碼

一般來說笙瑟,只要根據(jù)查詢到的prefab名直接去看prefab文件里的fn函數(shù)中的內(nèi)容就行了。只有人物稍微特殊癞志,使用了統(tǒng)一的基本模板往枷。所以要修改基本屬性應(yīng)該看player_common,看人物的特殊屬性才是看它的prefab文件。

設(shè)置長矛攻擊力的代碼為
inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)
設(shè)置wilson血量上限的代碼為
inst.components.health:SetMaxHealth(TUNING.WILSON_HEALTH)

編寫修改代碼

把以下的代碼寫到modmain.lua里错洁,即可完成修改秉宿。

-- 修改長矛攻擊力
local function modispear(inst)
    inst.components.weapon:SetDamage(50)
end
AddPrefabPostInit("spear",modispear)

-- 修改wilson血量
local function modiwilson(inst)
    inst.components.health:SetMaxHealth(300)
end
AddPrefabPostInit("wilson",modiwilson)

如此就完成了修改,在

修改一類屬性

有時候我們希望修改整一類的屬性屯碴,比如血量變化全部翻倍描睦,這時候想要試圖去修改單個prefab,就十分費力导而。幾乎所有的屬性都是用組件來實現(xiàn)的忱叭,所以我們可以修改組件。

對應(yīng)的Mod API是AddComponentPostInit今艺,和AddPrefabPostInit相似韵丑,傳入的第一個參數(shù)是component名,第二個參數(shù)是修改函數(shù)洼滚,函數(shù)的參數(shù)是組件對象埂息。

下面展示如何實現(xiàn)血量變化翻倍

流程

  1. 查詢要修改的component名
  2. 了解想要修改的部分對應(yīng)的代碼
  3. 編寫修改代碼

查詢component名

在prefab 里找到相應(yīng)的component,血量的component是health

了解代碼

打開health組件遥巴,找到血量變化的函數(shù)千康,是DoDelta,所以只要重定義DoDelta函數(shù)即可铲掐。

完成修改

把以下的代碼寫到modmain.lua里拾弃,即可完成修改。

local function DoubleHealthDelta(self)
    local original_dodelta = self.DoDelta
    self.DoDelta = function(self, amount, overtime, cause, ignore_invincible)
        local double_amount = amount*2
        original_dodelta(self, double_amount, overtime, cause, ignore_invincible)
    end
end
AddComponentPostInit("health", DoubleHealthDelta)

現(xiàn)在加上前面修改長矛攻擊力的那段代碼摆霉,你可以用長矛一次砍死蜘蛛了豪椿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市携栋,隨后出現(xiàn)的幾起案子搭盾,更是在濱河造成了極大的恐慌,老刑警劉巖婉支,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸯隅,死亡現(xiàn)場離奇詭異,居然都是意外死亡向挖,警方通過查閱死者的電腦和手機蝌以,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來何之,“玉大人跟畅,你說我怎么就攤上這事∪芡疲” “怎么了徊件?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵奸攻,是天一觀的道長。 經(jīng)常有香客問我庇忌,道長舞箍,這世上最難降的妖魔是什么舰褪? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任皆疹,我火速辦了婚禮,結(jié)果婚禮上占拍,老公的妹妹穿的比我還像新娘略就。我一直安慰自己,他們只是感情好晃酒,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布表牢。 她就那樣靜靜地躺著,像睡著了一般贝次。 火紅的嫁衣襯著肌膚如雪崔兴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天蛔翅,我揣著相機與錄音敲茄,去河邊找鬼。 笑死山析,一個胖子當(dāng)著我的面吹牛堰燎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笋轨,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼秆剪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爵政?” 一聲冷哼從身側(cè)響起仅讽,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钾挟,沒想到半個月后洁灵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡等龙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年处渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛛砰。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡罐栈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泥畅,到底是詐尸還是另有隱情荠诬,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站柑贞,受9級特大地震影響方椎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钧嘶,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一棠众、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧有决,春花似錦闸拿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至台汇,卻和暖如春苛骨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苟呐。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工痒芝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掠抬。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓吼野,卻偏偏與公主長得像,于是被迫代替她去往敵國和親两波。 傳聞我的和親對象是個殘疾皇子瞳步,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 這一章講解Prefab。Prefab是饑荒世界構(gòu)成的基礎(chǔ)腰奋,也是Mod技術(shù)的基本內(nèi)容单起。 Prefab,中文譯名叫預(yù)制...
    LongFei_aot閱讀 15,457評論 5 37
  • 首先劣坊,這里會討論c4d 對象管理器中的objects嘀倒,以及編程語言中的實例。 Object中的對象是c4d.Bas...
    N景波閱讀 1,852評論 1 3
  • 再進一步局冰,指定參數(shù)默認值的情況下测蘑,有時還要對參數(shù)值進行改變,比如汽車?yán)锍坛鰪S還要測試康二,運輸?shù)鹊炔豢赡苁?就...
    sinkpink閱讀 1,793評論 0 2
  • 修改屬性的值有三種不同的方式: 1沫勿、直接修改屬性的值 使用句點表示法直接訪問并設(shè)置汽車的屬性odome...
    陳容喜閱讀 337評論 0 0
  • 作業(yè): 問題:如果有人給狗增加100歲,程序怎么能以下判斷出問題并提示狗狗活不了這么長啊? 1.直接修改屬性的值 ...
    陳容喜閱讀 222評論 0 1