Project Zomboid

Project Zomboid

SearchModeAPI
Jane Helldiver 2024 年 3 月 1 日 下午 10:44
Use This for Blindbolds, Masks, etc.
Hello. How would I go about having this effect triggered while wearing / equipping items like a Welders Mask, Goggles, Spiffo Head, Blind Fold, Etc.

Would SUPER appreciate tips on making the lua code.

Example: When wearing a Welders Mask, I'd like to have the darkness effect kick in.
< >
正在显示第 1 - 1 条,共 1 条留言
star  [开发者] 2024 年 12 月 26 日 下午 8:01 
Code example.
NOT TESTED!
-- Register a new mode for the effect (you can change 'welders_mask_effect' to something meaningful) SearchModeAPI.Register("welders_mask_effect", 5) -- Set priority (higher value means higher priority) -- Function to check if player is wearing a specific item local function isWearingWeldersMask(player) -- You can change "Welders Mask" to the exact item name in the game -- <put your code here> end -- Current state local IS_WEARING_MASK = false -- Function to activate the darkness effect local function activateDarknessEffect() IS_WEARING_MASK = true SearchModeAPI.Lock('welders_mask_effect') SearchModeAPI.Activate("welders_mask_effect") local mode = getSearchMode():getSearchModeForPlayer(0) mode:getDarkness():setTargets(1, 1) -- Set darkness to 100% (black screen) SearchModeAPI.Deactivate("welders_mask_effect") end -- Function to deactivate the darkness effect local function deactivateDarknessEffect() IS_WEARING_MASK = false SearchModeAPI.Activate("welders_mask_effect") local mode = getSearchMode():getSearchModeForPlayer(0) mode:getDarkness():setTargets(0, 0) -- Set darkness back to 0% (normal screen) SearchModeAPI.Deactivate("welders_mask_effect") SearchModeAPI.Unlock('welders_mask_effect') end -- Function to monitor the player's equipped items and apply the effect accordingly local function checkWeldersMaskEffect(player) if not IS_WEARING_MASK and isWearingWeldersMask(player) then -- Activate effect if wearing the mask activateDarknessEffect() elseif IS_WEARING_MASK and not isWearingWeldersMask(player) then -- Deactivate effect if not wearing the mask deactivateDarknessEffect() end end -- The check function to update Events.OnClothingUpdated.Add(function(player) checkWeldersMaskEffect(player) end) -- Initial update Events.OnCreatePlayer.Add(function(int, player) if player ~= getSpecificPlayer(0) then return -- the cache variable is only for primary player end checkWeldersMaskEffect(player) end)
最后由 star 编辑于; 2024 年 12 月 26 日 下午 8:10
< >
正在显示第 1 - 1 条,共 1 条留言
每页显示数: 1530 50