Red de conocimiento informático - Conocimiento sistemático - Solicitando el código para la oveja Famine Volt

Solicitando el código para la oveja Famine Volt

activos locales =

{

Activo("ANIM", "anim/lightning_goat_build.zip"),

Activo(" ANIM", "anim/lightning_goat_shocked_build.zip"),

Asset("ANIM", "anim/lightning_goat_basic.zip"),

Asset("ANIM", "anim/ lightning_goat_actions.zip"),

Asset("SOUND", "sound/lightninggoat.fsb"),

}

prefabricados locales =

{

"carne",

"espino de cabra",

"leche de cabra"

}

SetSharedLootTable( 'cabra relámpago',

{

{'carne', 1.00},

{'carne', 1.00},

{'carne', 1.00},

{'lightninggoathorn',0.25},

})

SetSharedLootTable( 'chargedlightninggoat',

{

{'carne', 1,00},

{'carne', 1,00},

{'carne', 1,00},

{'lightninggoathorn',0.25},

{'goatmilk', 1.00},

})

función local RetargetFn( inst)

si inst.charged entonces

devuelve FindEntity(inst, TUNING.LIGHTNING_GOAT_TARGET_DIST, función(chico)

devuelve no chico:HasTag("lightninggoat" ) y

inst.components.combat:CanTarget(chico) y

no chico:HasTag("wall")

fin)

end

end

función local KeepTargetFn(inst, target)

if inst.components.herdmember

e inst.components .herdmember:GetHerd() luego

manada local = inst.components.herdmember

e inst.components.herdmember:GetHerd()

si es rebaño, entonces

devuelve distsq(Vector3(herd.Transform:GetWorldPosition() ), Vector3(inst.Transform:GetWorldPosition() ) ) < TUNING.LIGHTNING_GOAT_CHASE_DIST*TUNING.LIGHTNING_GOAT_CHASE_DIST

fin

fin

devuelve verdadero

fin

descarga de función local (inst)

inst:RemoveTag("charged")

inst.components.lootdropper:SetChanceLootTable('lightninggoat')

inst.sg :GoToState("descarga")

inst.AnimState:ClearBloomEffectHandle()

inst.charged = false

inst.Light:Enable(false) p>

inst.chargeleft = nil

end

función local setcharged(inst, instante)

inst:AddTag("charged")

inst.components.lootdropper:SetChanceLootTable('chargedlightninggoat')

inst.AnimState:SetBuild("lightning_goat_shocked_build")

inst.AnimState:Show(" fx" )

si no es instantáneo, entonces

inst.sg:GoToState("shocked")

end

inst.AnimState: SetBloomEffectHandle( "shaders/anim.ksh" )

inst.charged = true

inst.chargeleft = 3

inst.Light:Enable(true)

inst:ListenForEvent( "día completo", función()

si inst.chargeleft entonces

inst.chargeleft = inst.chargeleft - 1

si inst.chargeleft <= 0 entonces

descarga(inst)

fin

fin

fin, GetWorld())

fin

función local OnAttacked(inst, data)

inst.components.combat:SetTarget(data.attacker)

si inst.charged entonces

si data.attacker.components.health entonces

si (data.weapon == nil o (no data.weapon:HasTag("projectile") y data.weapon.projectile == nil ))

y (data.attacker ~= GetPlayer() o (data.attacker == GetPlayer() y no GetPlayer().components.inventory:IsInsulated())) entonces

data.attacker.components.health:DoDelta(-TUNING.LIGHTNING_GOAT_DAMAGE)

si data.attacker == GetPlayer() entonces

data.attacker.sg:GoToState(" electrocutar")

end

end

end

end

si no está cargado inst. y datos y data.weapon y data.weapon.components.weapon y data.weapon.components.weapon.stimuli == "eléctrico" luego

setcharged(inst)

fin

atacante local = datos y data.attacker

inst.components.combat:SetTarget(atacante)

inst.components.combat:ShareTarget(atacante, 20, función(amigo ) devuelve amigo:HasTag("lightninggoat") y amigo:HasTag("charged") final, 3)

fin

función local onlightning(inst, data)

si data.rod == inst entonces

setcharged(inst)

end

end

función local OnSave(inst , datos)

si inst.charged entonces

data.charged = inst.charged

data.chargeleft = inst.char

geleft

end

end

función local OnLoad(inst, data)

si data y data.charged y data.chargeleft entonces

setcharged(inst, true)

inst.chargeleft = data.chargeleft

fin

fin

función local getstatus(inst, visor)

si inst.charged entonces

devuelve "CARGADO"

fin

fin

función local fn(Sim)

local inst = CreateEntity()

local trans = inst.entity:AddTransform()

local anim = inst.entity:AddAnimState()

sonido local = inst.entity:AddSoundEmitter()

sombra local = inst.entity:AddDynamicShadow()

sombra: SetSize(1.75,.75)

inst.Transform:SetFourFaced()

MakeCharacterPhysics(inst, 100, 1)

anim:SetBank("lightning_goat" )

anim:SetBuild("lightning_goat_build")

anim:PlayAnimation("idle_loop", true)

anim:Hide("fx")

---------------------------------------------

inst:AddTag("rayo")

inst:AddTag("animal")

inst:AddTag("rayo")

luz local = inst.entity:AddLight()

inst.Light:Enable(false)

inst.Light:SetRadius(.85)

inst.Light:SetFalloff(0.5)

inst.Light:SetIntensity(.75)

inst.Light:SetColour(255/255,255/255,236/255)

----------------------------------------------- ---

inst: AddComponent("salud")

inst.components.health:SetMaxHealth(350)

-------- ----------

inst:AddComponent("combat")

inst.components.combat:SetDefaultDamage(TUNING.LIGHTNING_GOAT_DAMAGE)

inst.components.combat:SetRange(TUNING.LIGHTNING_GOAT_ATTACK_RANGE)

inst.components.combat.hiteffectsymbol = "lightning_goat_body"

inst.components.combat:SetAttackPeriod(TUNING.LIGHTNING_GOAT_ATTACK_PERIOD)

inst.components.combat:SetRetargetFunction (1, RetargetFn)

inst.components.combat:SetKeepTargetFunction(KeepTargetFn)

inst.components.combat:SetHurtSound("dontstarve_DLC001/creatures/lightninggoat/hurt")

---------------------------------------------

inst:AddComponent("sleeper")

inst.components.sleeper:SetResistance(4)

------------ --- --------------------

inst:AddComponent("lootdropper")

inst .components.lootdropper:SetChanceLootTable('lightninggoat')

------------------------------ -- ----------

inst:AddComponent("inspectable")

inst.components.inspectable.getstatus = getstatus

------------------------------------------

instancia :AddComponent ("ubicaciones conocidas")

inst:AddComponent("herdmember")

inst.components.herdmember:SetHerdPrefab("lightninggoatherd")

-- -- -------------------------------------

inst:ListenForEvent( " atacado", OnAttacked)

------------------------------------- ---------- ----

MakeMediumBurnableCharacter(inst, "lightning_goat_body")

> MakeMediumFreezableCharacter(inst, "lightning_goat_body")

inst:ListenForEvent("lightningstrike", function(inst, data) onlightning(inst, data) end)

inst.lightningpriority = 10

inst.setcharged = setcharged

inst.OnSave = OnSave

inst.OnLoad = OnLoad

------- ----------------------------------

inst:AddComponent("locomotor")

inst.components.locomotor.walkspeed = TUNING.LIGHTNING_GOAT_WALK_SPEED

inst.components.locomotor.runspeed = TUNING.LIGHTNING_GOAT_RUN_SPEED

inst:SetStateGraph("SGlightninggoat" )

cerebro local = require("brains/lightninggoatbrain")

inst:SetBrain(cerebro)

return inst

end

return Prefab( "común/monstruos/lightninggoat", fn, activos, prefabs)