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

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

【收獲日2】如何撰寫腳本型MOD (WIP)

2018-07-08 19:34 作者:TF2Video  | 我要投稿

0、前言

希望能讓你對(duì)收獲日2的LUA-MOD有初步認(rèn)識(shí)。

由于我非專業(yè),建議你把腦袋放空,按我的邏輯走。......................

1、腳本型MOD?

長(zhǎng)這樣子


https://github.com/segabl/pd2-third-person/blob/master/thirdperson.lua

2、如何開始

(1) 如果你屬于『茶來伸手,飯來張口』,那你還是別搞吧。

(2) 大單字、基本文法要看的懂。你可以試試這個(gè)例子:

Download the?Latest Release DLL, and place it in your PAYDAY 2 folder.

(3)?你需要BLT:https://superblt.znix.xyz ;(PS:現(xiàn)在沒有理由不使用SuperBLT)

(4)?你或許也需要Beardlib:http://modwork.shop/14924

(5)?Notepad++ \?Visual Studio Code?都會(huì)方便你進(jìn)行撰寫。

(6)?你會(huì)需要源代碼參考:https://github.com/Nepgearsy/payday2-luajit

Notepad++
源代碼

3、定義你的MOD

(1)?怎么被執(zhí)行?是要在某個(gè)特定功能前執(zhí)行嗎?之后?用按鍵觸發(fā)?

(2)?需要什么?你這MOD會(huì)動(dòng)用到什么?特定功能?參數(shù)?資料表?

(3)?要修改什么?要覆蓋什么?要顯示什么?

4、實(shí)作101-' Hello World ' (按鍵觸發(fā))

按鍵觸發(fā)就是當(dāng)你按下特定按鍵,他就會(huì)執(zhí)行特定腳本。

(1) 先創(chuàng)一個(gè)文件夾并給予以下檔案(mod.txt、YEAH.lua)

(2) mod.txt:https://pastebin.com/raw/mUBZets8

(3) YEAH.lua:https://pastebin.com/raw/ZSJAfQPu

(4)?如果一切正確,那你應(yīng)當(dāng)可以完成。

創(chuàng)一個(gè)文件夾
mod.txt、YEAH.lua
找到按鍵
定義按鍵
使用按鍵

5、實(shí)作101-解釋

你通過[mod.txt]定義了一個(gè)按鍵腳本,并且這按鍵執(zhí)行的是[YEAH.lua],所以當(dāng)你按下這按鍵時(shí),它就跑一次[YEAH.lua]。

6、實(shí)作101-應(yīng)用

假設(shè),我今天想要在游戲內(nèi)幫開啟無敵模式,且一樣是按鍵觸發(fā)

managers.player:player_unit():character_damage():set_god_mode(true)

managers.player:player_unit():character_damage():set_invulnerable(true)

7、實(shí)作101-為什么你知道是這段代碼?

經(jīng)驗(yàn)和實(shí)例。經(jīng)驗(yàn)告訴我,游戲內(nèi)的「我」可以靠

managers.player:player_unit()

取得,且傷害控制相關(guān)的屬于

PlayerDamage

而它的指向是靠

character_damage()

最后,開啟無敵的功能有

set_god_mode?。?https://git.io/JeljN )

set_invulnerable?。?https://git.io/JeljA )

所以就完成這代碼。

多寫多嘗試

8、實(shí)作102-覆蓋

以[Lobby Tag]( http://modwork.shop/13400 )這MOD來舉例

[mod.txt]

其中

順著

lib/network/matchmaking/networkaccountsteam

去源代碼找

長(zhǎng)這樣

那MOD做了些什么?

[LobbyTag.lua]

總之,就是修改了返回的答案

return "[" .. lobbyTag .. "] " .. Steam:username()

那我們可不可以自己亂改

當(dāng)然

9、實(shí)作102-解釋

今天游戲啟動(dòng)后,程序跑啊跑,跑到

lib/network/matchmaking/networkaccountsteam

就會(huì)因?yàn)槲矣校跦ook]而去執(zhí)行那腳本

"script_path" : "LobbyTag.lua"

而由于我是整個(gè)[覆蓋]新的功能給它,所以不管原有是什么樣,爾后就是長(zhǎng)這樣。

這觀念相當(dāng)重要,因?yàn)檫€有其他的修改方式

[PreHook]、[PostHook]、[Add]...

10、[PreHook]、[PostHook]...

假想,一整個(gè)[Function]是一個(gè)大框框,而它具有的運(yùn)作是放在其中的小框框,那在它的運(yùn)作執(zhí)行前的,[PreHook],之后,[PostHook],同時(shí),[Add],而不管哪個(gè)都是跟這大框框[Function]有關(guān)。

常見的作法是把原來的大框框全部存起來,放回去,並按照需要做各種Hook或修改答案。

用下圖說明:

我把[skill_dodge_chance]整個(gè)存到[AABC],

所以[AABC]有[skill_dodge_chance]的功能

y = f(x) = x + 1

然后放回[skill_dodge_chance]或重新定義它

f(x) = y where y = x + 1

為什么要這么做?

[AABC]有[skill_dodge_chance]的功能

管它原來是怎么算的,最后結(jié)果加 99999 就對(duì)了
管它原來是怎么算的,算之前先運(yùn)行這功能

99、總結(jié)

剩下就是編碼除錯(cuò)、創(chuàng)意發(fā)想、復(fù)合混用、邏輯推展等。

【收獲日2】如何撰寫腳本型MOD (WIP)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
磐石市| 余姚市| 临沭县| 苏尼特左旗| 平泉县| 图木舒克市| 广饶县| 宁武县| 甘德县| 兴业县| 桐城市| 呼图壁县| 绵阳市| 沈丘县| 包头市| 邯郸县| 黔西县| 永定县| 若羌县| 扶沟县| 文昌市| 宁武县| 乌兰浩特市| 陆良县| 晋中市| 武陟县| 太保市| 芜湖县| 蓬安县| 黄大仙区| 宁德市| 永春县| 华蓥市| 综艺| 福州市| 资源县| 洛南县| 逊克县| 淮北市| 朝阳区| 怀仁县|