Project Zomboid

Project Zomboid

SearchModeAPI
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.
< >
Showing 1-1 of 1 comments
star  [developer] 26 Dec, 2024 @ 8:01pm 
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)
Last edited by star; 26 Dec, 2024 @ 8:10pm
< >
Showing 1-1 of 1 comments
Per page: 1530 50