第189页:避魔圈
展开一八九.避魔圈(按键盘F9键在地上画避魔圈,任何生物靠近都将被弹开,再按F9键取消)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\player_common.lua文件,在inst:AddComponent("playeractionpicker")的下一行插入以下内容:
TheInput:AddKeyUpHandler(KEY_F9, function()
if not inst:HasTag("havelifebuoy") then
inst:AddTag("havelifebuoy")
inst.components.locomotor:Stop()
inst.AnimState:PlayAnimation("give")
inst.components.health:DoDelta(-10)
GetPlayer().components.playercontroller:ShakeCamera(inst, "FULL", 0.7, 0.02, .5, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground")
SpawnPrefab("groundpoundring_fx").Transform:SetPosition(inst.Transform:GetWorldPosition())
SpawnPrefab("tauntfire_fx").Transform:SetPosition(inst.Transform:GetWorldPosition())
inst:DoTaskInTime(0.5, function()
local pt = inst:GetPosition()
local lifebuoy = SpawnPrefab("firesuppressor_placer")
lifebuoy.Transform:SetPosition(pt.x, 0, pt.z)
lifebuoy.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )
lifebuoy.AnimState:SetLayer( LAYER_BACKGROUND )
lifebuoy.AnimState:SetSortOrder( 1 )
lifebuoy.Transform:SetScale(1.1, 1.1, 1.1)
lifebuoy.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
lifebuoy.AnimState:SetMultColour(255/255,0/255,0/255,1)
lifebuoy.persists = false
lifebuoy:DoPeriodicTask(0.3, function()
local pos = Vector3(lifebuoy.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10)
for k,v in pairs(ents) do
if v.components.health and v.components.combat and not v.components.health:IsDead() and not v:HasTag("player") and not v:HasTag("wall") then
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
SpawnPrefab("explode_small").Transform:SetPosition(v.Transform:GetWorldPosition())
v.components.health:DoDelta(-200)
local pt1 = lifebuoy:GetPosition()
local pt2 = v:GetPosition()
v.Transform:SetPosition((pt2.x-pt1.x)*1.5+pt2.x, 0, (pt2.z-pt1.z)*1.5+pt2.z)
end
end
end )
lifebuoy:AddTag("NOCLICK")
lifebuoy:AddTag("lifebuoy")
end )
else
inst:RemoveTag("havelifebuoy")
inst.components.locomotor:Stop()
inst.AnimState:PlayAnimation("give")
GetPlayer().SoundEmitter:PlaySound("dontstarve_DLC001/creatures/glommer/foot_ground")
SpawnPrefab("tauntfire_fx").Transform:SetPosition(inst.Transform:GetWorldPosition())
local pos = Vector3(inst.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000)
for k,v in pairs(ents) do
if v:HasTag("lifebuoy") then
v:Remove()
end
end
end
end )
即可按键盘F9键在地上画避魔圈,主角站在圈中,任何生物靠近都将被弹开,并杀伤其生命值,再次按键盘F9键收掉避魔圈。避魔圈是一种血魔法,每画一次,主角将消耗10点生命,在生命值较低时,请勿施法
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏