YN176-霸王盔(用猪皮种霸王盔,吸收99%伤害,挨打时弹开并反伤敌人,可照明、防雨、防冻、防暑、补脑、奔跑加速)
代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 一七六.霸王盔(用猪皮种霸王盔,吸收99%伤害,挨打时弹开并反伤敌人,可照明、防雨、防冻、防暑、补脑、奔跑加速) 用MT管理器打开游戏目录/assets/scripts/prefabs/pigskin.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: local function OnDeploy (inst, pt) local helmet = SpawnPrefab("pigskin") helmet.Transform:SetPosition(pt.x, pt.y, pt.z) helmet.AnimState:SetBank("wathgrithrhat") helmet.AnimState:SetBuild("hat_wathgrithr") helmet.AnimState:PlayAnimation("anim") helmet.components.inventoryitem:ChangeImageName("wathgrithrhat") helmet:RemoveComponent("stackable") helmet:RemoveComponent("tradable") helmet:RemoveComponent("edible") helmet:RemoveComponent("burnable") helmet:RemoveComponent("propagator") helmet:RemoveComponent("deployable") helmet:AddComponent("equippable") helmet.components.equippable.equipslot = EQUIPSLOTS.HEAD helmet.components.equippable.walkspeedmult = 2.5 helmet.components.equippable.dapperness = TUNING.DAPPERNESS_HUGE*32 helmet.components.equippable:SetOnEquip(function(helmet, owner) owner.AnimState:OverrideSymbol("swap_hat", "hat_wathgrithr", "swap_hat") owner.AnimState:Show("HAT") owner.AnimState:Show("HAT_HAIR") owner.AnimState:Hide("HAIR_NOHAT") owner.AnimState:Hide("HAIR") if owner == GetPlayer() then owner.AnimState:Hide("HEAD") owner.AnimState:Show("HEAD_HAIR") owner.components.temperature:SetTemp(20) owner:PushEvent("stopfreezing") owner:PushEvent("stopoverheating") owner.components.moisture:SetMoistureLevel(0) helmet.fire = SpawnPrefab( "campfirefire" ) local follower = helmet.fire.entity:AddFollower() follower:FollowSymbol( owner.GUID, "swap_hat", -6, -196, 0 ) helmet.fire.AnimState:SetMultColour(255/255,0/255,0/255,1) helmet.fire.Transform:SetScale(1.3, 1.3, 1.3) helmet.fire:RemoveComponent("heater") helmet.fire.persists = false helmet.helmetfn = function(attacked, data) if data and data.attacker and data.attacker.components.health then SpawnPrefab("groundpoundring_fx").Transform:SetPosition(owner.Transform:GetWorldPosition()) data.attacker.components.health:DoDelta(-300) local pt01 = owner:GetPosition() local pt02 = data.attacker:GetPosition() data.attacker.Transform:SetPosition((pt02.x-pt01.x)*1.5+pt02.x, 0, (pt02.z-pt01.z)*1.5+pt02.z) if data.attacker.components.locomotor then data.attacker.components.locomotor:Stop() end if data.attacker.components.health:GetPercent() < 0.3 then data.attacker.AnimState:SetMultColour(255/255,0/255,0/255,1) end end end helmet:ListenForEvent("attacked", helmet.helmetfn, owner) owner:AddTag("goodsavages") end end ) helmet.components.equippable:SetOnUnequip(function(helmet, owner) owner.AnimState:Hide("HAT") owner.AnimState:Hide("HAT_HAIR") owner.AnimState:Show("HAIR_NOHAT") owner.AnimState:Show("HAIR") if owner == GetPlayer() then owner.AnimState:Show("HEAD") owner.AnimState:Hide("HEAD_HAIR") owner.components.temperature:SetTemp(nil) helmet.fire:Remove() helmet.fire = nil helmet:RemoveEventCallback("attacked", helmet.helmetfn, owner) owner:RemoveTag("goodsavages") end end ) helmet:AddComponent("armor") helmet.components.armor:InitCondition(20000, 0.99) helmet:AddComponent("waterproofer") helmet.components.waterproofer:SetEffectiveness(1) helmet:AddTag("helmets") inst.components.stackable:Get():Remove() end inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy local function onsave(inst, data) if inst:HasTag("helmets") then data.helmets = true end end local function onload(inst, data) if data and data.helmets then inst.AnimState:SetBank("wathgrithrhat") inst.AnimState:SetBuild("hat_wathgrithr") inst.AnimState:PlayAnimation("anim") inst.components.inventoryitem:ChangeImageName("wathgrithrhat") inst:RemoveComponent("stackable") inst:RemoveComponent("tradable") inst:RemoveComponent("edible") inst:RemoveComponent("burnable") inst:RemoveComponent("propagator") inst:RemoveComponent("deployable") inst:AddComponent("equippable") inst.components.equippable.equipslot = EQUIPSLOTS.HEAD inst.components.equippable.walkspeedmult = 2.5 inst.components.equippable.dapperness = TUNING.DAPPERNESS_HUGE*32 inst.components.equippable:SetOnEquip(function(inst, owner) owner.AnimState:OverrideSymbol("swap_hat", "hat_wathgrithr", "swap_hat") owner.AnimState:Show("HAT") owner.AnimState:Show("HAT_HAIR") owner.AnimState:Hide("HAIR_NOHAT") owner.AnimState:Hide("HAIR") if owner == GetPlayer() then owner.AnimState:Hide("HEAD") owner.AnimState:Show("HEAD_HAIR") owner.components.temperature:SetTemp(20) owner:PushEvent("stopfreezing") owner:PushEvent("stopoverheating") owner.components.moisture:SetMoistureLevel(0) inst.fire = SpawnPrefab( "campfirefire" ) local follower = inst.fire.entity:AddFollower() follower:FollowSymbol( owner.GUID, "swap_hat", -6, -196, 0 ) inst.fire.AnimState:SetMultColour(255/255,0/255,0/255,1) inst.fire.Transform:SetScale(1.3, 1.3, 1.3) inst.fire:RemoveComponent("heater") inst.fire.persists = false inst.helmetfn = function(attacked, data) if data and data.attacker and data.attacker.components.health then SpawnPrefab("groundpoundring_fx").Transform:SetPosition(owner.Transform:GetWorldPosition()) data.attacker.components.health:DoDelta(-300) local pt01 = owner:GetPosition() local pt02 = data.attacker:GetPosition() data.attacker.Transform:SetPosition((pt02.x-pt01.x)*1.5+pt02.x, 0, (pt02.z-pt01.z)*1.5+pt02.z) if data.attacker.components.locomotor then data.attacker.components.locomotor:Stop() end if data.attacker.components.health:GetPercent() < 0.3 then data.attacker.AnimState:SetMultColour(255/255,0/255,0/255,1) end end end inst:ListenForEvent("attacked", inst.helmetfn, owner) owner:AddTag("goodsavages") end end ) inst.components.equippable:SetOnUnequip(function(inst, owner) owner.AnimState:Hide("HAT") owner.AnimState:Hide("HAT_HAIR") owner.AnimState:Show("HAIR_NOHAT") owner.AnimState:Show("HAIR") if owner == GetPlayer() then owner.AnimState:Show("HEAD") owner.AnimState:Hide("HEAD_HAIR") owner.components.temperature:SetTemp(nil) inst.fire:Remove() inst.fire = nil inst:RemoveEventCallback("attacked", inst.helmetfn, owner) owner:RemoveTag("goodsavages") end end ) inst:AddComponent("armor") inst.components.armor:InitCondition(20000, 0.99) inst:AddComponent("waterproofer") inst.components.waterproofer:SetEffectiveness(1) inst:AddTag("helmets") end end inst.OnSave = onsave inst.OnLoad = onload 即可用猪皮种霸王盔,吸收99%伤害,敌人攻击你时会被弹开,并遭到反伤,让你流的每一滴血,都收到百倍利息。霸王盔可照明、防雨、防冻、防暑、补脑,并使奔跑加速,与“霸王枪”并称饥荒世界两大神器,助你在乱世中百战百胜。佩戴霸王盔时,“铁血蛮族”不敢主动攻击你。不要与“用猪皮种猪火炬”一同修改