代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
一九四.宠物双子星(用齿轮种宠物狗,用海象牙种宠物海狸)
1.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/gears.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local dog = SpawnPrefab("teenbird")
dog.Transform:SetPosition(pt.x, pt.y, pt.z)
dog.AnimState:SetBank("hound")
dog.AnimState:SetBuild("hound_ice")
dog:SetStateGraph("SGhound")
dog.components.follower:SetLeader(GetPlayer())
dog.Transform:SetScale(0.6, 0.6, 0.6)
dog:AddTag("dogs")
dog.components.health:SetMaxHealth(10000)
dog.components.locomotor.runspeed = 20
dog:RemoveComponent("growable")
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
2.用MT管理器打开游戏目录/assets/scripts/prefabs/walrus_tusk.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local beaver = SpawnPrefab("teenbird")
beaver.Transform:SetPosition(pt.x, pt.y, pt.z)
beaver.AnimState:SetBank("werebeaver")
beaver.AnimState:SetBuild("werebeaver_build")
beaver:SetStateGraph("SGwerebeaver")
beaver.components.follower:SetLeader(GetPlayer())
beaver.Transform:SetScale(0.6, 0.6, 0.6)
beaver:AddTag("beavers")
beaver.components.eater:SetVegetarian()
beaver.components.health:SetMaxHealth(10000)
beaver.components.locomotor.runspeed = 20
beaver:RemoveComponent("growable")
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
3.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/smallbird.lua文件,在Asset("ANIM", "anim/smallbird_basic.zip"),的下一行插入以下内容:
Asset("ANIM", "anim/werebeaver_build.zip"),
Asset("ANIM", "anim/werebeaver_basic.zip"),
4.在inst:AddTag("teenbird")的下一行插入以下内容:
local function onsave(inst, data)
if inst:HasTag("dogs") then
data.dogs = true
end
if inst:HasTag("beavers") then
data.beavers = true
end
end
local function onload(inst, data)
if data.dogs then
inst.AnimState:SetBank("hound")
inst.AnimState:SetBuild("hound_ice")
inst:SetStateGraph("SGhound")
inst.components.follower:SetLeader(GetPlayer())
inst.Transform:SetScale(0.6, 0.6, 0.6)
inst.components.health:SetMaxHealth(10000)
inst.components.locomotor.runspeed = 20
inst:RemoveComponent("growable")
inst:AddTag("dogs")
end
if data.beavers then
inst.AnimState:SetBank("werebeaver")
inst.AnimState:SetBuild("werebeaver_build")
inst:SetStateGraph("SGwerebeaver")
inst.components.follower:SetLeader(GetPlayer())
inst.Transform:SetScale(0.6, 0.6, 0.6)
inst.components.health:SetMaxHealth(10000)
inst.components.eater:SetVegetarian()
inst.components.locomotor.runspeed = 20
inst:RemoveComponent("growable")
inst:AddTag("beavers")
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可用齿轮种宠物狗,用海象牙种宠物海狸,它们可以陪伴你,帮你打怪,是活力十足的小淘气。宠物需要喂食,不然会咬你(轻轻的),宠物狗喜欢吃肉,宠物海狸喜欢吃蔬菜,通过喂食可以为它们补血。最好在家的角落里扔一些食物,让它们随饿随吃