Aurorance Posted May 14, 2021 Share Posted May 14, 2021 Hello! The game crashed when I pressed the button G. Error is located at scripts/consolecommands, at line 680)Reason : "attempt to index "health" (nil value)" Here's the in-game code scripts/consolecommands: function c_armor(player) player = ListingOrConsolePlayer(player) if player ~= nil then SuUsed("c_armor", true) player.components.health:SetAbsorptionAmount(1) print("Enabled full absorption on " .. tostring(player.userid)) end end And here's the part in my character file that triggers the error: (It is located in modmain.lua) local function doAreaDamage (inst, x, y, z, damageRange, damageToLivingEntities, doDamageToNonCombatants, workableDamage, isExplosion, ignite, mustHaveTags, cantHaveTags, mustHaveOneOfTheseTags) local ents = TheSim : FindEntities (x, y, z, 12, nil, {"INLIMBO"}, nil) for i, v in ipairs(ents) do if v ~= inst and v:IsValid() and not v:IsInLimbo() then if v:IsValid() and not v:IsInLimbo() then if v ~= inst and v:IsValid() and not v:IsInLimbo() then if workableDamage > 0 and v.components.workable ~= nil and v.components.workable:CanBeWorked() then v.components.workable:WorkedBy(inst, workableDamage, nil) end if ignite and v.components.fueled == nil and v.components.burnable ~= nil and not v.components.burnable:IsBurning() and not v:HasTag("burnt") then v.components.burnable:Ignite() end if v.components.health ~= nil and not v.components.health:IsDead() then if v.components.combat ~= nil then v.components.combat:GetAttacked(inst, damageToLivingEntities, nil) elseif doDamageToNonCombatants then v.components.health:DoDelta(inst, damageToLivingEntities, nil) end end end end end end end local function AkaExplosion(player) if player.components.health:IsDead() or (player.explosiontime and GLOBAL.GetTime() - player.explosiontime < 1) then return end local x,y,z = player.Transform:GetWorldPosition() doAreaDamage(player, x, y, z, 12, 50, true, 0, true, false, nil, { "player", "structure", "INLIMBO", "NOCLICK" }, nil) -- spawn fx local fx = GLOBAL.SpawnPrefab("groundpound_fx") local fxx = GLOBAL.SpawnPrefab("groundpoundring_fx") fx.Transform:SetPosition(x, y, z) fxx.Transform:SetPosition(x, y, z) -- cost player.components.sanity:DoDelta(-10) player.components.hunger:DoDelta(-15) -- save time player.explosiontime = GLOBAL.GetTime() -- dialogue player.components.talker:Say("Cursed Technique Reversal: Red") end AddModRPCHandler(modname, "Aka", AkaExplosion) GLOBAL.TheInput:AddKeyDownHandler(GLOBAL.KEY_G, function() if GLOBAL.ThePlayer and GLOBAL.ThePlayer.prefab == "gojo" and GLOBAL.TheFrontEnd:GetActiveScreen() == GLOBAL.ThePlayer.HUD then if GLOBAL.TheWorld.ismastersim then AkaExplosion(GLOBAL.ThePlayer) else SendModRPCToServer(GetModRPC(modname, "Aka")) end end end) I believe somewhere makes health become no value, which crashes with the in-game code and leads to the error. Can anyone point out where the mistake is and how to fix it? Help will be much appreciated ! Link to comment Share on other sites More sharing options...
Gleenus Posted May 14, 2021 Share Posted May 14, 2021 Complete error log please? You server is dedicated? You server has caves or is cave-less? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now