TerraCraft更新记录

Indev 1.0(2021年1月27日)

更新主题:模组支持、创造模式、冒险模式、指令系统

游戏机制更新:

  1. 实现了数据扁平化处理,引入了模组ID命名空间、全局ID命名空间的概念,去除了全部硬编码数字ID。
  2. 实现了多模组支持,允许制作和加载模组。如果您想制作模组,可参阅官方模组文档:数据表文档、API文档、官方开发教程。教程持续更新中。
  3. 将TerraCraft的内置的大量C++代码翻译为了Json和Lua的模组代码,现在TerraCraft游戏本体内容以开源只读模组的形式存在。如果您希望开发自己模组,可以在devmods/terracraft文件夹中查看TerraCraft的模组源码。理论上您可以参考该源码制作TerraCraft原版能实现的全部内容。
  4. 添加了创造模式和冒险模式。现在游戏模式总共拥有三种模式:生存模式、创造模式、冒险模式。可以在新建地图界面中选择游戏模式,Pre-Alpha版本的世界存档和人物存档默认采用生存模式。在创造模式地图中,玩家可输入"/gamemode survival"进入生存模式,输入"/gamemode adventure"进入冒险模式,输入"/gamemode creative"重新回到创造模式。
  5. 创造模式下的玩家拥有穿墙飞行模式,快速按下两次空格键可开启或关闭穿墙飞行模式。
  6. 创造模式下玩家可以从配方界面中取出物品,只需要在配方界面右上角“查询模式”按钮中点击切换为“上帝模式”。
  7. 创造模式下的玩家可以无限制使用工具和武器。
  8. 创造模式下的玩家可以无限制进行附魔。
  9. 创造模式下的玩家不会受到所有的攻击伤害。
  10. 创造模式下的玩家可以修改传送门名称。
  11. 冒险模式下的玩家不能放置与破坏方块,可利用此特性设计RPG地图或者闯关关卡。
  12. 引入了四种身份权限,包括:玩家、管理员、服主、开发者,其中管理员、服主、开发者具有创造模式游戏模式。可通过服务端后台输入"master 在线玩家名称"赋予一个玩家服主权限。
  13. 引入了客户端指令系统,不同游戏模式以及不同身份权限下的玩家拥有不同的指令。
  14. 引入了更强大的服务端指令系统,服务端默认拥有创造模式下开发者权限。
  15. 客户端可以输入"\help"查看所有可用指令。
  16. 客户端聊天框支持按TAB键快速补全指令以及参数。
  17. 服主及以上权限可以输入"/admin 在线玩家名称"给予指定玩家管理员权限。
  18. 服主及以上权限可以输入"/noadmin 在线玩家名称"取消指定玩家管理员权限。
  19. 服务端可以输入"master 在线玩家名称"给予指定玩家服主权限。
  20. 服务端可以输入"nomaster 在线玩家名称"取消指定玩家服主权限。
  21. 管理员及以上权限可以输入"/killp"指令杀死指定玩家。
  22. 创造模式下的玩家可以输入"/spawn"指令传送到出生点。
  23. 创造模式下的玩家可以输入"/home"指令传送到重生点。
  24. 创造模式下的玩家可以输入"/ex 数值"指令添加经验值。
  25. 管理员及以上权限可以输入"/exp 数值"指令给指定玩家添加经验值。
  26. 创造模式下的玩家可以输入"/give 物品ID名称 [物品数量]"指令获取指定物品。
  27. 管理员及以上权限可以输入"/givep 在线玩家名称 物品ID名称 [物品数量]"指令给指定玩家指定物品。
  28. 创造模式下的玩家可以输入"/buff 状态效果ID名称 持续时间"指令获得指定状态效果。
  29. 管理员及以上权限可以输入"/buffp 在线玩家名称 状态效果ID名称 持续时间"指令给指定玩家指定状态效果。
  30. 创造模式下的玩家可以输入"/enchant 附魔ID名称 附魔等级"来为手持物品添加指定附魔。
  31. 管理员及以上权限可以输入"/gamemodew 游戏模式"指令修改当前地图的游戏模式。
  32. 管理员及以上权限可以输入"/gamemodep 在线玩家名称 游戏模式"指令修改指定玩家的游戏模式。
  33. 创造模式下的玩家可以输入"/npc NPCID名称 [坐标X=~8] [坐标Y=~8]"在指定位置生成一个NPC,坐标参数的~表示与当前位置的偏移量。
  34. 创造模式下的玩家可以输入"/effect 特效ID名称 [坐标X=~8] [坐标Y=~8]"在指定位置生成一个特效。
  35. 创造模式下的玩家可以输入"/tp 坐标X 坐标Y "传送到指定坐标位置。
  36. 管理员及以上权限可以输入"/tpp 在线玩家名称 坐标X 坐标Y "将某个在线玩家传送到指定坐标位置。
  37. 玩家可以输入"/me 消息"来广播一条关于自己的消息。
  38. 玩家可以输入"/msg 在线玩家名称 消息"来对指定玩家私信。
  39. 服务端可以输入"say 消息"来广播一条消息。
  40. 创造模式下的玩家可以输入"/clear"指令清空背包。
  41. 管理员及以上权限可以输入"/clearp 在线玩家名称"指令清空指定玩家的背包。
  42. 创造模式下可以输入"/day 数字"来调整昼夜更替时间。
  43. 创造模式下可以输入"/dayf 小时 [分钟=0] [秒=0]"来按现实生活的时间格式调整昼夜更替时间,例如输入"/dayf 12"将时间调整为正午,输入"/dayf 21 30"将时间调整为晚上21点30分。
  44. 创造模式下可以输入"/dayspeed 速度"来决定昼夜更替时间的流逝速度。(天堂制造!)
  45. 创造模式下可以输入"/daylock"来锁定当前昼夜更替时间。(砸瓦鲁多!)
  46. 创造模式下可以输入"/dayunlock"来解锁当前昼夜更替时间。
  47. 创造模式下可以输入"/wea 时间"来设置当前天气事件进度,时间有效范围为[1, 216000]。
  48. 创造模式下可以输入"/stopwea"来停止当前天气事件。
  49. 管理员及以上权限可以输入"/save"指令立即保存当前游戏数据。
  50. 管理员及以上权限可以输入"/autosave-on"指令开启自动保存模式。
  51. 管理员及以上权限可以输入"/autosave-off"指令关闭自动保存模式。
  52. 管理员及以上权限可以输入"/port"指令查看服务端端口号。
  53. 管理员及以上权限可以输入"/state"指令查看服务端状态。
  54. 管理员及以上权限可以输入"/pvp-on"指令开启玩家对战模式。
  55. 管理员及以上权限可以输入"/pvp-off"指令关闭玩家对战模式。
  56. 管理员及以上权限可以输入"/safeblow-on"指令开启爆炸保护模式。
  57. 管理员及以上权限可以输入"/safeblow-off"指令关闭爆炸保护模式。
  58. 管理员及以上权限可以输入"/players"指令查看所有在线玩家以及会话IP和端口号。
  59. 管理员及以上权限可以输入"/kick 在线玩家名称"指令踢出指定玩家。
  60. 管理员及以上权限可以输入"/kickall"指令踢出全部玩家。
  61. 管理员及以上权限可以输入"/banip"指令封禁指定IP。
  62. 管理员及以上权限可以输入"/nobanip"指令解除封禁指定IP。
  63. 管理员及以上权限可以输入"/blacklist"指令查看服务器黑名单。
  64. 现在可以通过模组加载自定义贴图,需要在mod_textures.json中注册,使用Reg.ModTexture(贴图ID名称)来获取自定义贴图。
  65. 现在可以通过模组制作新的物品、装备、工具、弹药、武器,可参考TC源码的items.json以及item_config.json文件。
  66. 现在可以通过模组编写新的工具和武器逻辑,例如如何发射抛射物等。可以参考TC源码的scripts/items文件夹。
  67. 现在可以通过模组制作新的方块,并支持自定义方块预设,支持方块动画机模板,支持方块粒子效果模板、自定义矿脉生成。可参考TC源码的blocks.json以及block_config.json文件。
  68. 现在可以通过模组编写方块的碰撞逻辑。可参考TC源码的scripts/blocks文件夹。(暂时不支持方块实体和UI,请等待之后的更新)
  69. 现在可以通过模组添加新的树。可参考TC源码的trees.json文件。
  70. 现在可以通过模组制作新的流体,包括粘滞系数、附加状态效果等。可参考TC源码的liquids.json文件。
  71. 现在可以通过模组制作新的抛射物,并允许编写自定义抛射物AI。注册方式可以参考TC源码的projectiles.json以及projectile_config.json文件,AI编写方式可以参考TC源码的scripts/projectiles文件夹。
  72. 现在可以通过模组制作新的生物(NPC),并允许编写自定义生物AI。注册方式可以参考TC源码的npcs.json以及npc_config.json文件,AI编写方式可以参考TC源码的scripts/npcs文件夹。
  73. 现在可以通过模组制作骨骼模型。注册方式可以参考TC源码的skeletons.json文件。使用方式可以参考scripts/npcs/npc_human.lua中对骨骼模型的控制。
  74. 现在可以通过模组制作新的粒子特效,并允许编写自定义特效AI。注册方式可以参考TC源码的effects.json以及effect_config.json文件,AI编写方式可以参考TC源码的scripts/effects文件夹。
  75. 现在可以使用AI的继承关系来实现AI的依赖关系。
  76. 现在可以使用modData来对NPC、抛射物、特效支持数据拓展,目前支持的数据类型包括:int、double、bool、ItemSlot以及相应数组形式。
  77. 现在可以通过模组制作新的状态效果(BUFF),并编写BUFF产生的逻辑。注册方式可以参考TC源码的buffs.json,编写方式可以参考TC源码的scripts/buffs文件夹。
  78. 现在可以通过模组制作新的附魔,并编写附魔产生的逻辑。注册方式可以参考TC源码的enchantments.json,编写方式可以参考TC源码的scripts/enchantments文件夹。
  79. 现在可以通过模组制作新的皮肤,可参考TC源码的skins.json文件。
  80. 现在可以通过模组加入新的音效和音效组,可参考TC源码的sounds.json和sound_config.json文件。
  81. 现在可以通过模组制作新的建筑或建筑群,建筑使用png绘图制作,采用多组件拼接的形式动态生成建筑。可参考TC源码的buildings.json文件以及buildings文件夹。
  82. 现在可以通过模组制作新的地表生物群系,以及为原有地表生物群系添加新的方块、放置物、建筑、NPC生成、战利品、背景等数据,可参考TC源码的surface_boimes.json。
  83. 现在可以通过模组制作新的地下生物群系,以及为原有地下生物群系添加新的方块、放置物、建筑、NPC生成、战利品等数据,可参考TC源码的underground_boimes.json。
  84. 现在可以通过模组为原有地狱层生物群系添加新的方块、放置物、建筑、NPC生成、战利品、背景等数据,可参考TC源码的nether_boimes.json。
  85. 现在可以通过模组编写自定义指令,注册方式可以参考TC源码的commands.json,编写方式可以参考TC源码的scripts/commands文件夹。
  86. 现在可以通过模组添加特殊的NPC生成方式。可参考TC源码的spawns.json。
  87. 现在可以通过模组添加自定义合成表、烧制表、酿造表、铁砧修复表,可参考TC源码的recipes.json文件。
  88. 实现了万能配方类型模板,参考TC源码的recipe_config.json文件。(由于暂未实现方块实体的模组支持,新的配方类型暂无作用)
  89. 现在可以看到玩家手里的物品。
  90. 物品详情栏追加显示更多的数值属性。
  91. 现在附魔的装备和武器采用了新的着色器,拥有了紫色闪烁效果。
  92. 增加了附魔成功的音效。
  93. 修改了蝙蝠的音效。
  94. 添加了新的法杖音效。
  95. 现在手持武器的敌怪将产生更高的叠加伤害。
  96. 现在加速BUFF在空中拥有烟雾粒子效果。(源码:scripts/buffs/speed.lua)
  97. 现在海底探索者附魔可以加快玩家在流体中的移动速度。(源码:scripts/enchantments/depth_strider.lua)
  98. 现在荆棘附魔将会对攻击者产生反弹伤害。(源码:scripts/enchantments/thorns.lua)
  99. 现在血腥眼球只在可见玩家时发射子弹,发射子弹的频率变更为2秒每发,并修改了发射音效。(源码:scripts/npcs/bloody_eye.lua)
  100. 地狱啃食者的运动AI修改为冲刺型AI。(源码:scripts/npcs/hell_eater.lua)
  101. 食人花的运动AI修改为冲刺型AI。(源码:scripts/npcs/man_eater.lua)
  102. 现在冰魔法拥有了多次反弹效果。(源码:scripts/projectiles/ice_magic.lua)
  103. 现在冰霜箭拥有了一次反弹效果。(源码:scripts/projectiles/ice_arrow.lua)
  104. 现在跟踪魔法能进行更精准的跟踪,并修改了特效。(源码:scripts/projectiles/shadow_magic.lua)
  105. 现在跟踪箭能进行更精准的跟踪,并修改了特效。(源码:scripts/projectiles/sword_arrow.lua)
  106. 现在火矢附魔已生效,且只对木箭有效。(源码:scripts/items/bow.lua)
  107. 现在多重射击和穿透附魔已生效。(源码:scripts/items/cross_bow.lua)
  108. 现在玩家与岩浆方块接触后会着火。(源码:scripts/blocks/magma_block.lua)
  109. 减缓了玩家在灵魂沙上的行走速度。(源码:scripts/blocks/soul_sand.lua)
  110. 现在水下速掘附魔能加快玩家在流体中的挖掘速度。(源码:scripts/enchantments/aqua_affinity.lua)
  111. 现在附魔对枪械类武器均无效。
  112. 现在节肢杀手附魔、亡灵杀手附魔、锋利附魔相互冲突。
  113. 现在保护附魔、爆炸保护附魔、火焰保护附魔、弹射物保护附魔相互冲突。
  114. 现在无限附魔只对弓生效,不再对弩生效。
  115. 现在击退、掠夺附魔只对剑生效。
  116. 现在多重射击附魔、穿透附魔相互冲突,且只对弩生效。
  117. 现在力量附魔、冲击附魔只对弓生效。
  118. 现在快速装填附魔只对弩生效。
  119. 现在下界合金系列装备和工具不再通过合成表制作,而需要通过铁砧制作。
  120. 添加了两个女性皮肤贴图(其一由赤月中の红尘提供)。
  121. 修改了一部分物品贴图。
  122. 修改了一部分方块贴图,现在背景将拥有更清晰的外观。
  123. 改进了方块渲染时的阴影效果,可以更清晰低分辨前景和后景。
  124. 玩家行走时会播放走路的音效。
  125. 门的音效修改为MC原版音效。
  126. 添加了主题曲音乐Overworld,由NJune制作。
  127. 提高了服务端的各项安全性。
  128. 现在玩家登录账号不再区分大小写。
  129. 木炭燃值降低为原来的一半。
  130. 移除了工业和塔防相关的装备和物品,将在工业MOD和塔防MOD中重新加入。

BUG修复:

  1. 修复了发射器总是面朝左侧的问题。
  2. 修复了苦力怕膨胀后不及时爆炸的问题。
  3. 修复了玩家与夹角斜坡接触后发生瞬移的问题。

Pre-Alpha 1.0.2.1(2020年8月23日)

紧急bug修复:

修复了服务端最大的恶性bug:提示“map.cpp”以及“chunkcontainer.cpp”奔溃的问题。

Pre-Alpha 1.0.2(2020年8月23日)

更新主题:服务端更新

游戏机制更新:

  1. 腐化之地白天不再生成幻翼,并减少骷髅枪手刷新概率。
  2. 血腥骷髅在阳光下不再自燃。
  3. 现在新创建的玩家和世界名称只能由字母、数字、下划线、空格组成。
  4. 现在新创建的世界不再允许不满足上诉命名规范的玩家进入。(旧存档仍然允许)
  5. 旧的服务端存档可以通过输入formatnoformat来限制是否不允许不满足上诉命名规范的玩家进入。
  6. 现在服务端将忽略使用非法字符命名规范玩家的数据保存。
  7. 加入了心跳检测,服务端会强制移除断线持续20秒的玩家。
  8. 服务端加入了账号管理系统,玩家在加入服务器前需要注册或登录账号,输入useloginstoplogin开启或关闭该系统。
  9. 地狱砖和地狱红砖的硬度由200降低为100。
  10. 现在恶魂的火球只能破坏硬度为100及以下的方块,圆石等方块不会被破坏。
  11. 现在吃东西将使用MC的吃东西音效。
  12. 标题界面添加了Discord链接按钮。
  13. 在服务端首页的configure server项中加入了自定义用于传输区块线程数的选项,请根据服务器性能选择合适的线程数。
  14. 修改了史蒂夫的肤色。

BUG修复:

  1. 修复了可能的使用非正常手段一键整理物品导致服务端奔溃的问题。
  2. 修复了可能的由于出现了字符串空数组导致服务端奔溃的问题。
  3. 修复了可能的在高延迟情况下强制执行UI操作导致服务端奔溃的问题。
  4. 现在如果强行放置家具,会强制清除所覆盖内的所有前景方块,而不是使服务端奔溃。
  5. 修复了高延迟状态下鼠标连点导致门移位的问题。
  6. 修复了门移位导致服务端崩溃的问题。
  7. 修复了大部分情况下发生数据包错误的问题。
  8. 修复了日志文件记录不及时的问题。
  9. 修复了对铁砧产物格子按SHIFT会导致物品消失的问题。
  10. 时运和精准采集附魔不再出现在同一个工具。
  11. 修复了附魔台等级不正确的问题,现在需要摆放至少4个书架才能达到30级附魔。
  12. 不再允许对枪械、电力工具进行附魔。
  13. 修复了死亡后重生点会刷新死亡位置生物的问题。
  14. 修复了冰霜行者生成的冰块会使覆盖的家具消失的问题。
  15. 修复了烈焰人火球等一部分抛射物遇到平台会隐身的问题。
  16. 修复了一部分中文文本翻译错误问题。

Pre-Alpha 1.0.1.1(2020年8月5日)

紧急bug修复:

修复了输入/kill指令后玩家装备彻底损坏的问题

Pre-Alpha 1.0.1(2020年8月5日)

游戏机制更新:

  1. 杂草斧砍树时间由平均15秒降低为平均9秒。
  2. 饥饿速度提高到原来的4倍。
  3. 现在合成台、附魔台、铁砧的物品在关闭界面后会自动放入背包,只有在背包满的情况下才以掉落物的形式扔出去。
  4. 森林群系的刷怪周期由8.33秒提高到10.66秒。
  5. 所有的小型花、小型草不再能使用武器破坏。
  6. 降低了玩家的惯性系数,自由减速度提高到原来的1.5倍。
  7. 移除了Debug界面中sx和sy参数。
  8. 钻石矿密度由每区块100个矿脉提高到130个矿脉,纵向生成区间由(2000,2560)变更为(1800,2560)。
  9. 恶灵发射火球频率由2秒每发降低为4秒每发。
  10. 现在熔炉被挖掘或被爆炸破坏会100%概率掉落内容物。
  11. 加入了更多的JOJO梗。
  12. 现在服务端可以通过输入pvpnopvp指令开启或者关闭玩家间的伤害,默认为开启。
  13. 现在服务端可以通过输入blownoblow指令关闭或开启爆炸保护机制,默认为关闭。
  14. 不再允许将非装备物品放入装备栏和外观栏。
  15. 手榴弹的伤害由3提高到5。
  16. 智能挖掘模式不再对火把有效。
  17. 潜影贝的攻击间隔由1秒1发降低为2秒1发。
  18. 添加了背包垃圾桶,按Z键可快速将物品放入垃圾桶销毁。
  19. 增加了日志系统。
  20. 在服务端中增加了大量的断言,服主请在服务端崩溃后向开发者发送断言信息的截图,并提交最新日志报告。
  21. 存档加入了备份机制,若存档损坏则读取最近一次成功打开的备份。
  22. 现在使用1个铁锭可以合成合成16个木箭。
  23. 添加了猪灵妹子皮肤。
  24. 添加了第一个男性皮肤:史蒂夫。
  25. 修复了玩家手臂骨骼模型贴图错误的问题。
  26. 服务端加入了players指令,可以查看所有在线玩家名单以及IP和端口号。
  27. 服务端加入了kick指令,可以踢出指定玩家。
  28. 服务端加入了kickall指令,可以踢出所有玩家。
  29. 服务端加入了banip指令,可以踢出指定ip的玩家,并不再允许登录服务端。
  30. 服务端加入了nobanip指令,可以从黑名单中恢复指定ip的访问权。
  31. 服务端加入了blacklist指令,可以查看当前所有被ban的ip。
  32. 树苗生长时间变成原来的两倍。
  33. 客户端加入了/kill指令,可以用于自杀快速返回重生点。
  34. 增加了按键操作提示和垃圾桶的使用提示。

BUG修复:

  1. 修复了血箭中毒后无法继续攻击(骗伤)的问题。
  2. 修正部分错误的中文翻译文本为“金合欢”。
  3. 现在溺尸、幻翼会在白天发生自燃。
  4. 敌怪在水中不再发生自燃。
  5. 青铜锭的合成表修正为3个铜锭和1个锡锭进行合成。
  6. 增强了服务端的一部分稳定性,修复了服务端一部分可能的奔溃问题。(奔溃原因:1、在装备栏放入无耐久物品,在损失耐久时发生错误。2、使用工具时在高延迟状态切换物品。3、其他原因导致了对普通物品获取工具属性。)
  7. 修复了可能的挖掘破坏导致方块实体内容物消失的问题。
  8. 修复了挖掘破坏箱子会损失一部分物品的问题。
  9. 现在会忽略出错的世界存档,而不是直接使游戏崩溃。
  10. 修复了死亡界面出现在菜单界面的问题。
  11. 修复了对合成产物格子右键会导致物品损失一半的问题。
  12. 修复了多人模式下在屏幕内刷怪的问题。
  13. 修复了一部分可能的存档无法读取的问题。(重新生成version.dat文件)
  14. 修复了门在开启状态下被破坏没有掉落物的问题。
  15. 现在平台不再能当作背景墙放置。
  16. 修复了流水不能破坏火把的问题。
  17. 现在在退出游戏时鼠标状态的物品和合成栏内的物品会自动放入背包。
  18. 修复了部分可能的刷物品问题。
  19. 修复了死亡中途退出重进不会回到重生点的问题。
  20. 修复了死亡中途退出重进所有判定无敌的问题。
  21. 刷怪机制不再会对死亡期间的玩家有效。

Pre-Alpha 1.0.0(2020年8月1日)

发布了第一个公测版本