【配件】消音器

預制物名

homura_weapon_buff_silent

簡介

“噓!別說話!”——維克波頓女士

消音器是一個很有趣的配件,它可以大幅降低射擊時的噪聲,如果使用一把消音的槍在背后攻擊敵人,你不會招引到它的仇恨。

制作消音器只需要一級工作臺的科技,材料也非常的簡單:1個保溫石和2個木炭。在哈姆雷特dlc中,由于無法制作保溫石,配方修改為4個鐵礦和2個木炭。

圖集

1.消音器 素材(畫師:羽中)



2.使用消音手槍攻擊豬人


一些八卦

為了設(shè)計這個物品的配方,作者想了很久,最終決定用保溫石和木炭,因為這兩個都是多孔疏松材料。
(當然,如果以后想到更好的配方就會修改)

代碼實現(xiàn)

通過組件api修改combat組件,使得生物無法對背后的攻擊者產(chǎn)生仇恨。

local function combatpostinit(combat)
    --計算兩個角度之間的夾角
    local function CalcDeltaAngle(angle1,angle2,abs)
        local delta = math.mod(angle2 - angle1,360)  -- (-360~360)
        delta = delta < 0 and delta + 360 or delta     -- (0 ~ 360)
        if abs then
            return delta > 180 and 360 - delta or delta  -- (0~180)
        else
            return delta 
        end
    end

    --判斷攻擊者是否在挨打者背后的函數(shù)
    local function IsBack(attacker, target)
        if target:IsValid() and target.Transform and attacker:IsValid() and attacker.Transform then

            --angle1是挨打者面朝的角度
            local angle1 = target.Transform:GetRotation()
            --angle2是進攻者相對于挨打者的角度
            local angle2 = target:GetAngleToPoint(attacker:GetPosition())

            local deltaangle = CalcDeltaAngle(angle1,angle2,true)
            if deltaangle > 90 then
                --如果兩個角度的差值大于90,我們認為進攻者位于挨打者的背后
                return true
            end
        end
    end  
   
    --修改設(shè)置仇恨目標的函數(shù)
    local old_settarget = combat.SetTarget
    function combat:SetTarget(new, ...)
        --如果攻擊者有消音器,并且在挨打者背后,則直接返回,不執(zhí)行設(shè)置目標的操作
        --注意,'homura: has silencer'是擁有消音器的標簽,它會在發(fā)動攻擊前添加到玩家身上,并在攻擊后立刻移除

        if new and new:HasTag('homura: has silencer') and IsBack(new, self.inst) then
            return
        else
            return old_settarget(self, new, ...)
        end
    end
end

AddComponentPostInit("combat",combatpostinit)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容