yzzn2009 发表于 2013-9-6 20:27

回复渊小乖:暗夜甲无法控制每打一下只下一点脑,因为主角被怪物打就会减脑,只能做到除了怪物因素外单独再减一点

一.暗影剑装备不减脑、砍一下减一点脑

    用记事本打开游戏目录\data\scripts\prefabs\nightsword.lua文件,

    1.在inst.components.weapon:SetDamage(TUNING.NIGHTSWORD_DAMAGE)的下一行插入以下内容:

local function onattack(inst, owner, target)
    owner.components.sanity:DoDelta(-1)
end

    inst.components.weapon.onattack = onattack


    2.将inst.components.dapperness.dapperness = TUNING.CRAZINESS_MED,替换为inst.components.dapperness.dapperness = TUNING.CRAZINESS_MED*0,




二.装备暗夜甲不减脑、被打减脑

    用记事本打开游戏目录\data\scripts\prefabs\armor_sanity.lua文件,

    1.将下列内容:

local function OnTakeDamage(inst, damage_amount, absorbed, leftover)
        local owner = inst.components.inventoryitem.owner
        if owner then
                local sanity = owner.components.sanity
                if sanity then
                        local unsaneness = damage_amount * TUNING.ARMOR_SANITY_DMG_AS_SANITY
                        sanity:DoDelta(-unsaneness, false)
                end
        end
end

    替换为:

local function OnTakeDamage(inst, damage_amount, absorbed, leftover)
        local owner = inst.components.inventoryitem.owner
        if owner then
                owner.components.sanity:DoDelta(-1)
        end
end


    2.将inst.components.dapperness.dapperness = TUNING.CRAZINESS_SMALL替换为inst.components.dapperness.dapperness = TUNING.CRAZINESS_SMALL*0

yzzn2009 发表于 2013-9-7 01:32

回复渊小乖

沃尔夫冈因为存在3种状态,我不知道你说的血量低于20%是哪种状态时的血量,所以用威尔森举例。

威尔森血量低于20%时,每秒补2%的血

    用记事本打开游戏目录\data\scripts\prefabs\wilson.lua文件,在local beard_bits = {1, 3,9}的下一行插入以下内容:

local function onhealthchange(inst, data)
   if inst.components.health.currenthealth <= 30 then
      inst.components.health:StartRegen(3, 1)
       end
   if inst.components.health.currenthealth >= 150 then
      inst.components.health:StopRegen()
   end
      return
end

        inst:ListenForEvent("healthdelta", onhealthchange)

    即可让威尔森血量低于20%时,每秒补2%的血。其中威尔森血量为150,所以150的20%为30,150的2%为3

    之所以要加一段当血量大于等于150时停止回血,是因为如果不加,当血回满时再遭到攻击,则不会等到低于20%后再回血,而是当即回血

    游戏中通常local function都不会自动起效,必须用标签及参数调用local function才会有效果,这也是为什么最底下要加inst:ListenForEvent("healthdelta", onhealthchange)这句的原因

1356473168 发表于 2013-9-7 07:25

我想要强制打暗影怪的代码有么

小涛丶 发表于 2013-9-7 09:24

yzzn2009 发表于 2013-8-30 16:27 static/image/common/back.gif
一次采5个曼德拉草:用记事本打开游戏目录\data\scripts\prefabs\mandrake.lua文件,在inst:AddComponent( ...

          为什么我找不到 ?          我都找了6遍了         

姐姐你出翔了 发表于 2013-9-7 09:59

没回复可见,就说明楼主诚意啊:victory:

向日葵的人生。 发表于 2013-9-7 10:38

本帖最后由 向日葵的人生。 于 2013-9-7 10:39 编辑

关于矿工灯永久使用的代码..我看了下工具无限mod..可能是矿工灯.lua文件中的..
local function nofuel(inst)
    local owner = inst.components.inventoryitem and inst.components.inventoryitem.owner
    if owner then
      --owner:PushEvent("torchranout", {torch = inst}) --tehmug
    end

    --turnoff(inst) --tehmug
end

以及modmain.lua文件中的
function preventPerishable (inst)
    inst.components.perishable.Update = function () end -- set to blank function
    inst.components.perishable.GetPercent = function () return 1 end
end

AddPrefabPostInit("pumpkin_lantern", preventPerishable )

function InfiniteTools_RemoveFiniteUses(inst)
      if inst.components.finiteuses then
                inst:RemoveComponent("finiteuses")
      end
end

--inst:AddComponent("fueled")
function InfiniteTools_Removefueled(inst)
      if inst.components.fueled then
                inst:RemoveComponent("fueled")
      end
end

向日葵的人生。 发表于 2013-9-7 10:39

向日葵的人生。 发表于 2013-9-7 10:38 static/image/common/back.gif
关于矿工灯永久使用的代码..我看了下工具无限mod..可能是矿工灯.lua文件中的..
local function nofuel(inst ...

上面那个笑脸是....:    P

向日葵的人生。 发表于 2013-9-7 14:51

本帖最后由 向日葵的人生。 于 2013-9-7 14:55 编辑

然后是防御塔mod...不是我原创...但是原作者暂时联系不上..所以放在这里问问...
代码就是modmain.lua里的一段..
local function Findenemy(inst)
    local pos = Vector3(inst.Transform:GetWorldPosition())
    local ents = TheSim:FindEntities(pos.x, pos.y, pos.z, 20)
    for i,ent in ipairs(ents) do
            if ent.components.health and not ent.components.health:IsDead() and ent.components.combat and (ent:HasTag("monster") or ent.components.combat.target==GLOBAL.GetPlayer()) then
                local nug = SpawnPrefab("stafflight")
                local pt = Vector3(inst.Transform:GetWorldPosition())            
                nug.Transform:SetPosition(pt:Get())
                local j=1
                nug:DoPeriodicTask(0.05, function()
                local pos = Vector3(ent.Transform:GetWorldPosition())
                local angle= pos-pt
                local mofor = pt+Vector3((j/40)*angle.x,(j/40)*angle.y,(j/40)*angle.z)   
                if mofor==pos then   ent.components.health:DoDelta(-10)   
                if ent.sg and ent.sg.sg.states.hit then
                ent.sg:GoToState("hit") end
                nug:Remove()
                else nug.Transform:SetPosition(mofor:Get())
                j=j+1 end end)
            end

    end
end

local function towerPrefabPostInit(inst)
    inst.Attacktask = inst:DoPeriodicTask(1.5, function()Findenemy(inst) end)
end

AddPrefabPostInit("researchlab", towerPrefabPostInit)
AddPrefabPostInit("researchlab2", towerPrefabPostInit)
AddPrefabPostInit("researchlab3", towerPrefabPostInit)
AddPrefabPostInit("researchlab4", towerPrefabPostInit)

即可以给四个科研机器添加上防御塔功能...
不过有三个问题..
第一个问题是...被我攻击过的墙体也成为了攻击目标   我试着去掉了ent.components.combat.target==GLOBAL.GetPlayer() 这一段..结果连攻击我的二师兄也不列为攻击目标了..
第二个问题是..我想加入被攻击者被冰冻的效果(寒冰塔),于是我加入了这么一段..
    if target.components.freezable then
      target.components.freezable:AddColdness(3)
    end
...结果是错误的...好像是因为没有target标签..
第三个问题是..攻击的(现在是一个光球)弹道有些问题...隔怪物还有一段距离就会消失..而怪物也会过一会才会受到伤害(即做一个被伤害动作)


问大神..这三个问题能解决么..三个笑脸是:D

小涛丶 发表于 2013-9-7 15:06

         可不可以修改树精出来的几率       那个伍迪变身身上没木头   不能用MOD种树精   能不能砍几棵树就出来一个树精         求弄在修改上面

woshizqr 发表于 2013-9-7 16:16

可以增加树精吗

小涛丶 发表于 2013-9-7 16:27

yzzn2009 发表于 2013-9-1 22:24 static/image/common/back.gif
所有宝石都一个文件,所以只能改全部宝石都可以种双朵荧光草




         你能把这个添加修改里面吗?

yzzn2009 发表于 2013-9-7 18:32

本帖最后由 yzzn2009 于 2013-9-7 18:46 编辑

小涛丶 发表于 2013-9-7 09:24 static/image/common/back.gif
为什么我找不到 ?          我都找了6遍了在这个位置下一行插语句

yzzn2009 发表于 2013-9-7 18:46

woshizqr 发表于 2013-9-7 16:16 static/image/common/back.gif
可以增加树精吗

增加树精出现概率:用记事本打开游戏目录\data\scripts\prefabs\evergreens.lua文件,将if math.random() <= TUNING.LEIF_PERCENT_CHANCE then替换为if math.random() <= TUNING.LEIF_PERCENT_CHANCE*100 then即可

    其中*100为增加树精出现概率100倍,想增加多少概率可自己调整数字

yzzn2009 发表于 2013-9-7 18:49

小涛丶 发表于 2013-9-7 16:27 static/image/common/back.gif
你能把这个添加修改里面吗?

一方面种植的技术例子已经比较多了,另一方面夜晚照明的物品也有许多,再加入种荧光草有些重复了,先放放,如果要的人比较多,我们再加入好吗

yzzn2009 发表于 2013-9-7 19:21

向日葵的人生。 发表于 2013-9-7 14:51 static/image/common/back.gif
然后是防御塔mod...不是我原创...但是原作者暂时联系不上..所以放在这里问问...
代码就是modmain.lua里的一 ...

我通常不回答重新设计游戏和做mod的问题,因为时间不够,我只能给一点点意见,且以后请尽量避免问重新设计游戏和做mod的问题,谢谢。

一.想既保留攻击主角攻击的目标,又不伤墙:将if ent.components.health and not ent.components.health:IsDead() and ent.components.combat and (ent:HasTag("monster") or ent.components.combat.target==GLOBAL.GetPlayer()) then替换为以下内容:

if ent.components.health and not ent.components.health:IsDead() and ent.components.combat and (ent:HasTag("monster") or ent.components.combat.target==GLOBAL.GetPlayer()) and not ent:HasTag("wall") then


二.想在机器被打时产生效果,需要建立local function OnAttacked(inst, data),格式可以参考修改技巧中“十.菩萨低眉”,将其中的内容换成你想要的效果。

local function OnAttacked(inst, data)
    if data.attacker.components.health and not data.attacker:HasTag("player") then
       inst.components.health:DoDelta(TUNING.HEALING_SUPERHUGE*5)
       inst.components.sanity:DoDelta(TUNING.SANITY_HUGE*5)
       data.attacker.components.health:DoDelta(-TUNING.HEALING_SUPERHUGE*30)
   end
end

    inst:ListenForEvent("attacked", OnAttacked)


三.光球提前消失问题,我刚才测试了一下,将射程加长,光球不存在自动删除问题,应该是mod中其他语句干扰导致

yzzn2009 发表于 2013-9-7 19:42

1356473168 发表于 2013-9-7 07:25 static/image/common/back.gif
我想要强制打暗影怪的代码有么

暗影怪直接就可以打,不需要强制攻击啊,没太明白你的意思

向日葵的人生。 发表于 2013-9-7 21:16

yzzn2009 发表于 2013-9-7 19:42 static/image/common/back.gif
暗影怪直接就可以打,不需要强制攻击啊,没太明白你的意思

19版san值在某个程度时,会出现影怪,但是影怪不会主动攻击你....而这个时候...你也不能按ctrl强行攻击影怪

yzzn2009 发表于 2013-9-8 00:41

本帖最后由 yzzn2009 于 2013-9-8 00:42 编辑

1356473168 发表于 2013-9-7 07:25 static/image/common/back.gif
我想要强制打暗影怪的代码有么
看了楼上说的,我明白你的意思了。是暗影怪刚出来但还没攻击主角的时候,想要强制攻击它。但游戏生暗影怪的机制中有以下语句

      if child.components.health then
            child.components.health:Kill()


意思是,那时的暗影怪生出来会被系统自动杀死(只是个显示效果),等不到你去攻击它。之后再出的暗影怪就可以随意攻击了,但已经不是前一批了

小涛丶 发表于 2013-9-8 08:38

yzzn2009 发表于 2013-9-7 18:49 static/image/common/back.gif
一方面种植的技术例子已经比较多了,另一方面夜晚照明的物品也有许多,再加入种荧光草有些重复了,先放放 ...

               你放在这里我复制一下会有一些黑的东西            然后复制在QQ上    在弄在记事本上就会说 数据丢失         

小涛丶 发表于 2013-9-8 09:01

能不能弄用腐烂植物种麦克斯光

渊小乖 发表于 2013-9-8 12:26

楼主大神两天没更新了期待洞穴也有白天的修改方法!

2416202910 发表于 2013-9-8 16:21

高鸟蛋的英语名叫什么?

渊小乖 发表于 2013-9-8 18:18

2416202910 发表于 2013-9-8 16:21 static/image/common/back.gif
高鸟蛋的英语名叫什么?

gaodiaodan思密达

渊小乖 发表于 2013-9-8 18:21

2416202910 发表于 2013-9-8 16:21 static/image/common/back.gif
高鸟蛋的英语名叫什么?

开玩笑的 鸟蛋的文件是egg

渊小乖 发表于 2013-9-8 18:21

楼主不更新了也不回复了 伤心

yzzn2009 发表于 2013-9-8 19:30

小涛丶 发表于 2013-9-8 08:38 static/image/common/back.gif
你放在这里我复制一下会有一些黑的东西            然后复制在QQ上    在弄在记事本上 ...

是不是文本编码的问题啊,你把网页的信息先复制到空白的记事本中,如果还有黑方块,就把它替换为空格试试

yzzn2009 发表于 2013-9-8 19:31

渊小乖 发表于 2013-9-8 12:26 static/image/common/back.gif
楼主大神两天没更新了期待洞穴也有白天的修改方法!

这两天太忙了,我已经更新了

渊小乖 发表于 2013-9-8 19:31

如何修改掉挖坟全部宝石落几率 杀狗全部宝石掉落几率?????????想要杀狗挖矿都有几率掉落全部宝石

渊小乖 发表于 2013-9-8 19:32

yzzn2009 发表于 2013-9-8 19:31 static/image/common/back.gif
这两天太忙了,我已经更新了

谢               谢               大                  神

yzzn2009 发表于 2013-9-8 19:32

2416202910 发表于 2013-9-8 16:21 static/image/common/back.gif
高鸟蛋的英语名叫什么?

高鸟蛋英文tallbirdegg
页: 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42
查看完整版本: 易宁:饥荒游戏实用修改技巧(非MOD模式,请自行备份)支持海难版——6月6日更新:简化修船工具制作材料(只用木板和绳子)