设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 64|回复: 0

[制作教程] Dark Souls Bonfire, Death & Bloodstain System

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4609

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    23225
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28728

    灌水之王

    发表于 2026-7-8 12:38:01 | 显示全部楼层 |阅读模式
    I was making this for my own project, but after I realized that this is shockingly easier than I expected, so I've decided to share this!

    Requirements

    • A plugin that changes how Game Overs are handled (Any will probably work)
    • Visustella Events & Movement Core
    Yes, that is it. I'm kind of shocked to be honest that's all it takes.

    What your going to do next is create 5-ish variables:

    • One to save the bonfire's MapID
    • Two to set the X and Y coordinates you want the player to respawn at.
    • One to save the MapID where the player dies
    • One per value you want to be lost after death (such as Gold and EXP)
    If you want the party to lose EXP, your going to need to set up a variable for each party slot.

    Once you got these variables, we're going to need a common event that runs whenever the player dies:

    Spoiler: Death Common Event
    ◆Control Variables:#0002 DeathMapID = Map ID
    ◆Control Variables:#0003 Death Gold = Gold
    ◆Change Gold:- {Death Gold}
    ◆Recover All:Entire Party
    ◆Transfer Player:{SaveMapID} ({SaveX},{SaveY})
    What this does is save the Map the player died on, as well as how much Gold they had. It then removes all of that gold, before healing the party to full before sending them to the bonfire they last interacted with. (We'll set that up next) It also will not save the values of previous deaths, so the player will lose all that stuff. (Just like Dark Souls)

    Your likely going to need to add some other event commands depending on what plugin you use, I'm using the NoGameover plugin found in MZ's dlc folder, witch detects when the player has game over's with a switch, so I added a command to set the switch off after everything else is done, but what your going to need to add might be different.

    Next, we're going to need to set up an event for the bonfires that triggers on player interaction. This is just a very basic version, you can add more to it if you want, all that's important for this to work is the first 3 lines:

    Spoiler: Bonfire Event
    ◆Control Variables:#0001 SaveMapID = Map ID
    ◆Control Variables:#0005 SaveX = X value of where you want the player to respawn
    ◆Control Variables:#0006 SaveY = Y value of where you want the player to respawn
    ◆Recover All:Entire Party
    ◆Text:None, None, Dim, Bottom
    :    :This is a save point.\.\.
    :    :What do you want to do?
    ◆Show Choices:Save, Nothing (Dim, Middle, #1, #2)
    :When Save
      ◆Open Save Screen
      ◆
    :When Nothing
      ◆
    :End
    This is setup so the player doesn't need to save to respawn at the bonfire, though you can easily change this if you want. After this you just need to copy and paste this event on every map you want a bonfire, changing the X and Y values when needed.

    Next we're going to set up the bloodstain event, I've set these up in a way that they spawn in the same place no matter where you died on the map, but I did this for a good reason, as I will explain later. Do note this event has 2 pages, but it's not that complicated, so don't worry. The event is set up like this:

    Spoiler: Bloodstain Code Page 1 [Autorun]
    ◆If:DeathMapID = MapID of current map
      ◆Control Self Switch:A = ON
      ◆
    :Else
    ◆Erase Event
    :End
    Spoiler: Bloodstain Code Page 2 [Action Button]
    Make sure this runs when Self Switch A is on
    ◆Play SE:Absorb1 (90, 100, 0)
    ◆Wait:60 frames
    ◆Play SE:Absorb2 (90, 100, 0)
    ◆Flash Screen:(255,204,204,170), 20 frames (Wait)
    ◆Control Variables:#0002 DeathMapID = 0
    ◆Change Gold:+ {Death Gold}
    ◆Control Variables:#0003 Death Gold = 0
    ◆Erase Event
    Make sure the Bloodstain only has a graphic on page 2, otherwise it won't appear as intended. Also the Bloodstain event has the <Exit Reset Self Data> notetag from Visu Events Move Core, otherwise it won't show up ever.

    What this does is detect when the Player is on the same map as the last death location, causing it to appear. Otherwise it won't show up. When the player interacts with the Bloodstain, it will play some effects and then give the player all their gold back, before it sets the Death MapID variable to 0 (To prevent it from showing up over and over), as well as the Lost Gold variable. (Just to be safe) After this your going to need to copy and paste the Bloodstain to each map where combat can take place, and then setting the MapID to the correct value.

    "But what if I have a cutscene in the boss room? Won't that prevent this from working?" I hear you ask. I've already thought of this and have 2 fixes:

    • You can create a new Bloodstain that spawns in the room before the boss room.
    • Or you can do something like this with one of your previously made Bloodstains:
    Spoiler: Alt Bloodstain Page 1
    ◆If:DeathMapID = MapID where the Bloodstain is
      ◆Control Self Switch:A = ON
      ◆
    :Else
      ◆If:DeathMapID = MapID of the Boss Room
        ◆Control Self Switch:A = ON
        ◆
      :Else
        ◆Control Self Switch:B = ON
        ◆
      :End
      ◆
    :End
    Now the Bloodstain will show up if you died on either map, handy!

    And that's about it! The whole system should work now! I will update this tutorial if I find any bugs or any are brought to my attention, but that's all I have for now. Feel free to ask questions if you don't fully under stand something, and thank you for checking this out!

    Other Questions You Might Have

    • What if I want this to work with the normal game over screen?: Not sure, it probably depends on the plugin. I might update this tutorial to replicate the classic Dark Souls "YOU DIED" screen, but that will be later.
    • Could you maybe provide an example project?: Unlikely, don't really want to make one.



    本贴来自国际rpgmaker官方论坛作者:BeanCanDev处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/dark-souls-bonfire-death-bloodstain-system.163148/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-16 17:32 , Processed in 0.086896 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表