terraria吧 关注:737,055贴子:9,719,673
  • 39回复贴,共1

关于拓展tr防御机制,实现不死模式的思路。

只看楼主收藏回复

1l送给元旦


1楼2017-12-30 12:35回复
    _(:3」∠)_看见mod讨论群在说这个东西难打啊那个mod难玩啊什么啊什么的。忽然就想到现在tr的数据已经被mod放大了很多倍。比如动不动就是破万伤害的武器和秒杀怪物之类的。但是数据高了,我们可以改机制啊!比如说,对于防御机制来说,tr一直是以一个定量defense来囊括所有的伤害减免,其中,近战,魔法,远程,召唤物伤害,全是在这一范畴之内的。————你还没发现这玩意的远大前途吗?!这个内容放着不用可是太可惜了哦?我是指,为什么不来加一些特殊的,开心的内容,把防御细分化一下。我们可以,就是直接简单粗暴的减免某一类型的伤害……为什么不呢。
    好了废话少说,我也是直接放干货。
    首先是伤害机制。Terraria里的伤害是由一个Hurt的函数构建的。(可能用词不当。)如下所示。
    Hurt(int Damage, int hitDirection, bool pvp = false, bool quiet = false, string deathText = " was slain...", bool Crit = false)
    参数一目了然,我也就不一一赘述。而在tml的examplemod中也提到了这一点。在Exampleplaye.cs里,是这么写的
    public override void Hurt(bool pvp, bool quiet, double damage, int hitDirection, bool crit)
    恩,重载了几个数据。
    不要忘了我们的任务,我们的任务是细分防御机制,不过已经说到这里了,已经很简单了吧。来几个if判定?
    if (!this.immune) //永远无敌。
    {
    return 0.0;
    }
    for (int j = 0; j < 1000; j++)
    {
    if (Main.projectile[j].magic = true;)
    {
    Return damage * 0.1;
    }
    }
    是不是很明了=w=
    或者说,想要rabi-ribi里那种「根性」的效果?可以。
    If(this.damage > Player.statLife)
    {
    return statLife - 1.0;
    } //或许还要在KillMe函数里继续判定,因为不确定不死先还是处死玩家先
    ……
    _(:3」∠)_只要你想玩,随便你怎么玩啦。
    那么今天话题就到这里,散了吧。反正这个东西肯定有人做过吧。恩。


    2楼2017-12-30 12:36
    回复
      百分百减伤?那个早有了,不过有的MOD不能实现而已


      IP属地:河北来自Android客户端3楼2017-12-30 12:37
      收起回复
        大佬会玩,我只会CE锁血锁蓝锁防


        来自Android客户端4楼2017-12-30 12:57
        收起回复
          你吧多少人有编程基础心里没有数吗


          IP属地:山东来自Android客户端5楼2017-12-30 13:34
          收起回复
            灾厄mod表示笑笑


            IP属地:中国香港来自Android客户端10楼2017-12-31 00:50
            收起回复
              太多了不想看也看不懂我还是老老实实玩灾厄和瑟银镐吧


              IP属地:甘肃来自Android客户端11楼2017-12-31 01:39
              收起回复
                然并卵 修改的话还玩什么游戏


                IP属地:山东来自iPhone客户端12楼2017-12-31 06:52
                收起回复
                  建议搞个类似钛金套那种无敌时间的效果,调成永久无敌时间即可


                  IP属地:中国香港来自Android客户端13楼2017-12-31 12:01
                  收起回复
                    普通模式2点防御减少1点伤害,专家模式1.5点防御减少3点伤害,貌似是这样


                    IP属地:山西14楼2017-12-31 13:09
                    收起回复
                      火前留名


                      IP属地:安徽来自手机贴吧15楼2017-12-31 20:39
                      收起回复
                        火前留名


                        IP属地:安徽来自手机贴吧16楼2017-12-31 20:39
                        回复
                          达成成就“在tr吧里学习c++”


                          IP属地:四川来自Android客户端17楼2018-01-02 00:32
                          收起回复