饥荒mod吧 关注:57,989贴子:235,689
  • 0回复贴,共1
下面例出的代码是要添加在角色代码文件里的local fn = function 之下
生命 inst.components.health:SetMaxHealth(x) 修改括号内的X即可设置人物的3围上限
饥饿 inst.components.hunger:SetMax(x)
** inst.components.sanity:SetMax(x)
饥饿消耗速率 inst.components.hunger:SetRate(TUNING.WILSON_HUNGER_RATE*x) x修改为1.5则增加50的饥饿消耗速率 0.5则是减少50的消耗速率
忽略变质 也就是WX78的功能 = true
吃有毒食物不掉血 = true SAN还是会掉的
伤害吸收 = x 也就是天生自带防御 设置为1的话则无敌 = =
受到多少的火焰伤害 inst.components.health.fire_damage_scale = x 设置为0则像火女一样免疫火伤 0.5为受到一半火焰伤害
天生自带SAN回复 = TUNING.DAPPERNESS_LARGE
将LARGE改为以下语句则可以调整回复速度
SUPERTINY
SMALL
MED
MEDLARGE
LARGE
HUGE
下面是每个词对应的SAN回复速度(每分钟)
LARGE SANITY_SUPERTINY = 1,
SANITY_TINY = 5,
SANITY_SMALL = 10,
SANITY_MED = 15,
SANITY_MEDLARGE = 20,
SANITY_LARGE = 33,
SANITY_HUGE = 50,
自动回血 inst.components.health:StartRegen(x, y) X是一次回几点 Y是几秒回一次
黑暗中掉**的速率 inst.components.sanity.night_drain_mult = x
靠近怪物时掉**的速率 inst.components.sanity.neg_aura_mult = x
角色攻击加成 = X 设置为1.5就是大力士的攻击
攻击间隔 inst.components.combat.min_attack_period = X X越小攻击速度越快 正常人是0.5
自带科技 inst.components.builder.bonus_tech_level = X X只能为1或者2或者3 对应3个科技 老奶奶的代码就是inst.components.builder.bonus_tech_level = 1
移动速度 这个不是填倍数 而是直接写基础移动速度
=x 平时行走时的速度 正常人是6
= x 在路上走时的速度
inst.components.combat:SetDefaultDamage(x) 这个是人物的空手攻击力 正常人是写10 也就是一拳10点伤害 写68的话就是空手也有影刀的攻击力了
这个是进入饥饿状态下生命值消耗的速率 inst.components.hunger:SetKillRate(TUNING.WILSON_HEALTH/TUNING.STARVE_KILL_TIME*x)
这个是让人物每隔一段时间就在脚下生产出一个物品(参照野牛下米田共)
inst:AddComponent("periodicspawner")
inst.components.periodicspawner:SetPrefab("poop")修改括号内的名字决定让人物拉什么(可以拉火焰哦)
inst.components.periodicspawner:SetRandomTimes(240, 480)这2个数字是间隔 多久拉一次 这段显示的就是 拉翔的间隔是240秒到480秒之间随机的一个值
inst.components.periodicspawner:SetDensityInRange(-100, 5000000)
inst.components.periodicspawner:SetMinimumSpacing(50000)
inst.components.periodicspawner:Start()
这楼声明一下 本帖不定期更新 以后发现了新的代码还会发出来 如果想要让角色再读取TUNING里面的数据的时候和其他角色不一样(例如拿长矛比其他角色的攻击要高) 可以在句柄下添加一个
if GetPlayer().prefab ~= "x" then X是该角色的名称 然后在下面另起一行
按照TUNING.x = y的格式对该角色读取TUNING时的数据进行详细的设置 X等于该数据的字符 Y等于详细的数据
例子:修改攻击基础数据 TUNING原代码是wilson_attack = 34
想要修改该角色在读取基础攻击系数的话 ,就要添加TUNING.wilson_attack=X
(新手不要认为这是威吊的攻击,威尔逊的攻击只不过是34这个数字的代码而已 例如长矛的攻击力代码就是SPEAR_DAMAGE = wilson_attack,也就是说SPEAR_DAMAGE = wilson_attack= 34,理解不了我也没辙 )
在最后要添加一个END(有if就要有end)
如果想让该角色有用一个独一无二的可制造项目 直接在句柄下添加一段制造项目的代码即可
制造项目的代码范例
火炬Recipe("torch", {Ingredient("cutgrass", 2),Ingredient("twigs", 2)}, RECIPETABS.LIGHT, TECH.NONE)
详细解释一下
Recipe("制造物品的名称", {Ingredient("材料1", 材料1需要的数量),Ingredient("材料2{可不填}", 材料2需要的数量)}, RECIPETABS.制造项目出现在哪个制造栏, TECH.需要的科技等级 如需要1本科技就先ONE 2本就写TWO 不需要科技出生即可制造则写NONE )
出生自带物品
这个稍微有点复杂
首先添加一个句柄 local start_inv =
在这之下添加
{
"X",
}
X为物品的名称 如果自带多个物品则
local start_inv =
{
"X",
"X",
"X",
}
注意上面这段代码不能添加在local fn = function下 必须在下面END之下添加
local fn = function 之下要添加一个inst.components.inventory:GuaranteeItems(start_inv)
并且必须在return后面的括号里添加一个start_inv (注意格式) 接下来发一下种东西MOD的代码
在要种的东西的文件里面的inst:AddComponent("tradable")之下新起一行代码
local function OnDeploy (inst, pt)
local 要种出来的东西的名称 = SpawnPrefab("要种出来的东西的名称")
if 要种出来的东西的名称 then
要种出来的东西的名称 :PushEvent("growfrom种下去的东西")
要种出来的东西的名称 .Transform:SetPosition(pt.x, pt.y, pt.z)
inst.components.stackable:Get():Remove()
end
end
inst:AddComponent("deployable")
网页链接 = OnDeploy
这俩段是触电提供的代码(我还没怎么研究过0 0)
增加一个合成栏:
count = 1
for _ in pairs(RECIPETABS) do
count = count + 1
end
RECIPETABS["CUSTOMTAB"] = {str = STRINGS.TABS.CUSTOMTAB, sort=count, icon = "mods/evolution/images/customtab.tex"}
闪电效果:
local pos = Vector3(target.Transform:GetWorldPosition())
local lightning = PlayFX(pos, "lightning", "lightning", "anim")
lightning.AnimState:SetBloomEffectHandle( "data/shaders/anim.ksh" )
lightning.AnimState:SetLightOverride(1)
lightning.Transform:SetScale(2,2,2)
GetClock():DoLightningLighting()
GetPlayer().SoundEmitter:PlaySound("dontstarve/rain/thunder_close")
GetPlayer().components.playercontroller:ShakeCamera(lightning, "FULL", 0.7, 0.02, .5, 40)
local ents = TheSim:FindEntities(pos.x, pos.y, pos.z, 3)
for k,v in pairs(ents) do
if not v:IsInLimbo() then
if and not then
v.components.burnable:Ignite()
end


来自Android客户端1楼2021-05-12 19:39回复