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

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

Gmod lua插件(Dishonored_Jump)解析

2023-03-26 19:15 作者:扎之克  | 我要投稿

版本1.1

這個插件比較簡單,主要是如何利用gmod事件編寫。

首先是Gmod wiki連接:https://wiki.facepunch.com/gmod/

搜索hook就能找到這些事件。

第二,可以用vscode編輯gmod lua文件,vscode 有g(shù)mod lua插件,比較方便

vscode中的gmod插件

二段跳:在地面上按住空格鍵0.3s觸發(fā)二段跳

玩家按鍵按下和彈起事件

按下事件
彈起事件

利用hook.add(事件名,功能名,函數(shù))添加事件的功能,函數(shù)可以像是下面這樣的匿名函數(shù)

獲取玩家跳躍鍵狀態(tài)

hook.Remove(事件名,功能名)可以移除添加的功能。

以上代碼就能獲取玩家的跳躍鍵狀態(tài),如果說起跳時在地上,那么創(chuàng)建一個0.3s的定時器,定時器到期后判斷跳躍鍵是否按下,如果滿足條件就給玩家加個向上的速度。

timer. Create(名字,時長?, 執(zhí)行次數(shù),?函數(shù))

這樣就實現(xiàn)了二段跳。

有些需要注意的:

1、某些函數(shù)只能在服務(wù)器端實現(xiàn)(也就是在lua/autorun/server/下或者用lua_openscript打開),比如設(shè)置速度。

2、設(shè)置速度與獲取速度似乎不對等,需要乘上一個系數(shù)

視角晃動功能:落地時視角晃動

在恥辱中,玩家掉到地上的話,視角會像果凍或者說彈簧那樣晃動。這里用帶阻尼的彈簧去模擬,視角的晃動量可以用數(shù)值法或符號法解

撞擊地面事件:

設(shè)置站立時視角偏移和設(shè)置當(dāng)前視角偏移:

這兩個比較奇怪,站立時,第一個似乎只對Z方向偏移啟作用,第二個只對XY方向啟作用,

蹲下時,第二個對XYZ都起作用,第一個可能對XY方向其作用,兩個可能需要結(jié)合著用。

再對晃動程度做個限制,直接限制初始條件的速度就行。

這樣就實現(xiàn)了視角晃動。

一些常數(shù):

?1、默認(rèn)站立視角偏移(0,0,64)

?2、默認(rèn)蹲下視角偏移(0,0,28)

攀爬功能:

這里用TraceLine來判斷,相當(dāng)于射出一條線,然后返回線碰到的位置和法向量。

那這任務(wù)相當(dāng)于做一個避障判斷,我不擅長這個,所以這插件BUG比較多。

這個事件每tick一次:

這里8個tick檢測一次。

檢測

首先是水平掃描,在玩家位置創(chuàng)建一組間隔均勻、長度50左右的探測器

蹲著能通過的最大高度為36,為了不錯過這個窗口,所以間隔為36的一半,當(dāng)有探測器碰到了并且法向量Z值小于cos(45°),45°是能站穩(wěn)的平面最小角度,這說明可能碰到障礙物,延長其他探測器以獲得更多信息。

根據(jù)探測器的結(jié)果來判斷哪個高度可能有可通行的路徑,這里這樣判斷,上個與下個水平距離至少拉開10且不能再同一平面,防止以下情況。

通過點積與水平距離差來大致判斷

通過后,再檢測一下上面,由于沒有準(zhǔn)確的障礙物高度,所以大概判斷一下,縫隙別太小就行

通過后利用二分法來搜索落腳點,實際上游戲環(huán)境比較復(fù)雜,而寥寥幾次的Traceline信息量有限,所以必須做一些假設(shè)。

比較常見的障礙物形狀差不多這樣:

假設(shè)在障礙物上能找到個點將梯度符號給分割開來,然后類似找極值,對落腳點要求是能站住,并且高度也有一定要求,這樣就比較簡單了。

收斂條件:對高度有點要求,大致判斷一下能否站穩(wěn)
變化率符號:這兩非異或一下可以得到

再列舉一些情況,減少BUG

找到落腳點后再大致判斷一下這個點會不會卡住。

落腳點判斷完成了,做個拋物線插值到落腳點就可以了。

改變實體位置,只能在服務(wù)器端運行
晃動玩家視角角度

如果說檢測是在客戶端跑的,那就需要與服務(wù)器通信,比如說客戶端發(fā)個定位,讓服務(wù)器將玩家移動到那:

客戶端:

服務(wù)器端:

類似用hook.add添加事件

創(chuàng)建菜單和控制臺變量:

CreateConVar:創(chuàng)建控制臺變量,如果已有就返回那個變量

第一個參數(shù)是名字,第二是默認(rèn)值

FCVAR那些是變量的特性,wiki中可以查到

添加控制臺變量

Utilities是指添加到“設(shè)置”里


添加菜單

進度條、復(fù)選框之類得指定調(diào)節(jié)剛才創(chuàng)建的控制臺變量

效果



Gmod lua插件(Dishonored_Jump)解析的評論 (共 條)

分享到微博請遵守國家法律
胶州市| 宁乡县| 衡山县| 和顺县| 阜阳市| 云阳县| 景宁| 尤溪县| 临高县| 太康县| 公安县| 蕲春县| 广德县| 苏尼特左旗| 花垣县| 信宜市| 瑞昌市| 遵化市| 墨竹工卡县| 行唐县| 类乌齐县| 临高县| 克拉玛依市| 蒲城县| 陆河县| 睢宁县| 阿勒泰市| 铁力市| 房山区| 岳阳县| 侯马市| 德格县| 贵阳市| 漠河县| 福清市| 光泽县| 德江县| 法库县| 揭东县| 大厂| 沾化县|